Lodash 中文文档 (v3.10.1) - Array 要领

Lodash 中文文档 (v3.10.1) – “Array” 要领

Translated by PeckZeg
Original Docs: Lodash v3.10.1 Docs

更新日记

2015-01-02

  • 谢谢 @neuront_.flatten 翻译的发起

“Array” 要领

_.chunk(array, [size=1])

建立一个元素分红长度为 size 的分组的数组。假如 collection 不能被匀称的支解,那末末了一个区块将会包含盈余的元素。

参数

  1. array (Array) : 待处置惩罚的数组

  2. [size=1] (number) : 每一个区块的长度

返回
(Array) : 返回包含每一个区块的新数组

示例

_.chunk(['a', 'b', 'c', 'd'], 2);
// → [['a', 'b'], ['c', 'd']]

_.chunk(['a', 'b', 'c', 'd'], 3);
// → [['a', 'b', 'c'], ['d']]

_.compact(array)

建立一个移除了一切假值的数组。值 false, null, 0, "", undefinedNaN 均为假值。

参数

  1. array (Array) : 待简化的数组

返回

(Array) : 返回过滤值后的新数组

示例

_.compact([0, 1, false, 2, '', 3]);
// → [1, 2, 3]

_.difference(array, [values])

建立一个每一个值都不包含在其他的供应的的数组内的值的数组(运用 SameValueZero 举行相称比较)。

参数

  1. array (Array) : 待搜检的数组

  2. [values] (…Array) : 待消除值的数组

返回

(Array) : 返回过滤值后的新数组

示例

_.difference([1, 2, 3], [4, 2]);
// → [1, 3]

_.drop(array, [n=1])

建立一个从肇端位置最先删除 n 个元素后的数组分片。

参数

  1. array (Array) : 待查询的数组

  2. [n=1] (number) : 待删除的元素个数

返回

(Array) : 返回分片后的 array

示例

_.drop([1, 2, 3]);
// → [2, 3]

_.drop([1, 2, 3], 2);
// → [3]

_.drop([1, 2, 3], 5);
// → []

_.drop([1, 2, 3], 0);
// → [1, 2, 3]

_.dropRight(array, [n=1])

建立一个从尾部位置最先删除 n 个元素后的数组分片。

参数

  1. array (Array) : 待查询的数组

  2. [n=1] (number) : 删除元素的个数

返回

(Array) : 返回分片后的 array

示例

_.dropRight([1, 2, 3]);
// → [1, 2]

_.dropRight([1, 2, 3], 2);
// → [1]

_.dropRight([1, 2, 3], 5);
// → []

_.dropRight([1, 2, 3], 0);
// → [1, 2, 3]

_.dropRightWhile(array, [predicate=_.identity], [thisArg])

建立一个从尾部最先舍弃元素 array 的分片。在 predicate 返回假值之前一向舍弃元素。断言将被绑定 thisArg 参数并在实行时传入三个参数:value, index, array

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. array (Array) : 待查询的数组

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代将会实行的函数

  3. [thisArg] (*) : predicate 将要绑定的 this

返回

(Array) : 返回 array 的分片

示例

_.dropRightWhile([1, 2, 3], function(n) {
  return n > 1;
});
// → [1]

var users = [
  { 'user': 'barney',  'active': true },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': false }
];

// 运用 `_.matches` 回调函数的简称
_.pluck(_.dropRightWhile(users, { 'user': 'pebbles', 'active': false }), 'user');
// → ['barney', 'fred']

// 运用 `_.matchesProperty` 回调函数的简称
_.pluck(_.dropRightWhile(users, 'active', false), 'user');
// → ['barney']

// 运用 `_.property` 回调函数的简称
_.pluck(_.dropRightWhile(users, 'active'), 'user');
// → ['barney', 'fred', 'pebbles']

_.dropWhile(array, [predicate=_.identity], [thisArg])

建立一个从肇端位置最先舍弃元素 array 的分片。在 predicate 返回假值之前一向舍弃元素。断言将被绑定 thisArg 参数并在实行时传入三个参数:value, index, array

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. array (Array) : 待查询的数组

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代将会实行的函数

  3. [thisArg] (*) : predicate 将要绑定的 this

返回

(Array) : 返回 array 的分片

示例

_.dropWhile([1, 2, 3], function(n) {
  return n < 3;
});
// → [3]

var users = [
  { 'user': 'barney',  'active': false },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': true }
];

// 运用 `_.matches` 回调函数的简称
_.pluck(_.dropWhile(users, { 'user': 'barney', 'active': false }), 'user');
// → ['fred', 'pebbles']

// 运用 `_.matchesProperty` 回调函数的简称
_.pluck(_.dropWhile(users, 'active', false), 'user');
// → ['pebbles']

// 运用 `_.property` 回调函数的简称
_.pluck(_.dropWhile(users, 'active'), 'user');
// → ['barney', 'fred', 'pebbles']

_.fill(array, value, [start=0], [end=array.length])

运用 value 添补 array 的元素(从 start 位置最先,但不包含 end

注重:该要领将转变数组

参数

  1. array (Array) : 带添补的数组

  2. value (*) : 添补至 array 的值

  3. [start=0] (number) : 肇端位置

  4. [end=array.length] (number) : 完毕位置

返回

(Array) : 返回 array

示例

var array = [1, 2, 3];

_.fill(array, 'a');
console.log(array);
// → ['a', 'a', 'a']

_.fill(Array(3), 2);
// → [2, 2, 2]

_.fill([4, 6, 8], '*', 1, 2);
// → [4, '*', 8]

_.findIndex(array, [predicate=_.identity], [thisArg])

这个函数相似 _.find 但它返回的是经由过程 predicate 返回真值的第一个元素的索引值,而不是其元素自身。

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. array (Array) : 待查找的数组

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(number) : 返回查找到的元素的索引值,不然为 -1

示例

var users = [
  { 'user': 'barney',  'active': false },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': true }
];

_.findIndex(users, function(chr) {
  return chr.user == 'barney';
});
// → 0

// 运用 `_.matches` 回调函数的简称
_.findIndex(users, { 'user': 'fred', 'active': false });
// → 1

// 运用 `_.matchesProperty` 回调函数的简称
_.findIndex(users, 'active', false);
// → 0

// 运用 `_.property` 回调函数的简称
_.findIndex(users, 'active');
// → 2

_.findLastIndex(array, [predicate=_.identity], [thisArg])

这个函数相似 _.findIndex,但它会从右往左遍历 collection 的元素。

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. array (Array) : 待查找的数组

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(number) : 返回查找到的元素的索引值,不然为 -1

示例

var users = [
  { 'user': 'barney',  'active': true },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': false }
];

_.findLastIndex(users, function(chr) {
  return chr.user == 'pebbles';
});
// → 2

// 运用 `_.matches` 回调函数的简称
_.findLastIndex(users, { 'user': 'barney', 'active': true });
// → 0

// 运用 `_.matchesProperty` 回调函数的简称
_.findLastIndex(users, 'active', false);
// → 2

// 运用 `_.property` 回调函数的简称
_.findLastIndex(users, 'active');
// → 0

_.first(array)

猎取 array 的第一个元素

别称

  • _.head

参数

  1. array (Array) : 待查询的数组

返回

(*) : 返回 array 的第一个元素

示例

_.first([1, 2, 3]);
// → 1

_.first([]);
// → undefined

_.flatten(array, [isDeep])

衔接一切数组元素。假如 isDeep 指定为 true,那末数组元素会递归衔接,不然它将只衔接一层数组元素。

参数

  1. array (Array) : 待衔接的数组

  2. [isDeep] (boolean) : 指定是不是衔接深层的数组元素

返回

(Array) : 返回一个衔接一切数组元素的新数组

示例

_.flatten([1, [2, 3, [4]]]);
// → [1, 2, 3, [4]]

// 运用 `isDeep`
_.flatten([1, [2, 3, [4]]], true);
// → [1, 2, 3, 4]

_.flattenDeep(array)

递归拍平一个嵌套数组

参数

  1. array (Array) : 待递归拍平的数组

返回

(Array) : 返回一个被拍平过的数组

示例

_.flattenDeep([1, [2, 3, [4]]]);
// → [1, 2, 3, 4]

_.indexOf(array, value, [fromIndex=0])

猎取 value 初次在 array 涌现的索引(运用 SameValueZero 举行相称性比较)。假如 fromIndex 为负数,则作为 array 从尾部的位移。假如 array 已整顿,且传入 fromIndex 值为 true,则将运用更高效的二分查找。

参数

  1. array (Array) : 待查找的数组

  2. value (*) : 待查找的值

  3. [fromIndex=0] (boolean|number) : 最先查找的索引位置或传入 true 以代表运用二分查找

返回

(number) : 返回婚配值的索引,不然返回 -1

示例

_.indexOf([1, 2, 1, 2], 2);
// → 1

// 运用 `fromIndex`
_.indexOf([1, 2, 1, 2], 2, 2);
// → 3

// 实行二分查找
_.indexOf([1, 1, 2, 2], 2, true);
// → 2

_.initial(array)

Gets all but the last element of array.

猎取 array 中一切元素(除了末了一个元素)

参数

  1. array (Array) : 待查询的数组

返回

(Array) : 返回 array 的分片

示例

_.initial([1, 2, 3]);
// → [1, 2]

_.intersection([arrays])

猎取一切传入数组中都包含的元素(运用 SameValueZero 举行相称性比较)

参数

  1. [arrays] (…Array) : 待搜检的数组

返回

(Array) : 返回一个包含一切传入数组中都包含的元素的新数组

示例

_.intersection([1, 2], [4, 2], [2, 1]);
// → [2]

_.last(array)

Gets the last element of array.

猎取 array 的末了一个元素

参数

  1. array (Array) : 待查询的数组

返回

(*) : 返回 array 的末了一个元素

示例

_.last([1, 2, 3]);
// → 3

_.lastIndexOf(array, value, [fromIndex=array.length-1])

这个函数相似 _.indexOf,但它从右到左遍历 array 的一切元素

参数

  1. array (Array) : 待查找的数组

  2. value (*) : 待查找的值

  3. [fromIndex=0] (boolean|number) : 最先查找的索引位置或传入 true 以代表运用二分查找

参数

(number) : 返回婚配值的索引,不然返回 -1

示例

_.lastIndexOf([1, 2, 1, 2], 2);
// → 3

// using `fromIndex`
_.lastIndexOf([1, 2, 1, 2], 2, 2);
// → 1

// performing a binary search
_.lastIndexOf([1, 1, 2, 2], 2, true);
// → 3

_.pull(array, [values])

array 中移除一切指定的值(运用 SameValueZero 举行相称性比较)。

注重:和 _.without 差别,这个要领将会转变数组

参数

  1. array (Array) : 待修正的数组

  2. [values] (…*) : 待移除的值

返回

(Array) : 返回 array

示例

var array = [1, 2, 3, 1, 2, 3];

_.pull(array, 2, 3);
console.log(array);
// → [1, 1]

_.pullAt(array, [indexes])

array 移除给定索引的元素,并返回一个移除元素的数组。索引能够被指定为一个数组或多个参数。

注重:与 _.at 差别,该要领会修正 array

参数

  1. array (Array) : 待修正的数组

  2. [indexes] (…(number|number[]) : 待移除元素的索引,能够指定为多个参数或许索引数组

返回
(Array) : 返回含有已移除元素的数组

示例

var array = [5, 10, 15, 20];
var evens = _.pullAt(array, 1, 3);

console.log(array);
// → [5, 15]

console.log(evens);
// → [10, 20]

_.remove(array, [predicate=_.identity], [thisArg])

移除一切在 array 中并经由过程 predicate 的元素,并返回一切移除元素的数组。断言函数绑定 thisArg 并传入三个参数:value, index, array

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

注重:和 _.filter 差别,该要领将转变数组

参数

  1. array (Array) : 待修正的数组

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(Array) : 返回含有移除元素的新数组

示例

var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
  return n % 2 == 0;
});

console.log(array);
// → [1, 3]

console.log(evens);
// → [2, 4]

_.rest(array)

Gets all but the first element of array.

猎取 array 的除第一个外的一切元素。

别号

  • _.tail

参数

  1. 返回 (Array) : 待查询的数组

返回

(Array) : 返回 array 的分片

示例

_.rest([1, 2, 3]);
// → [2, 3]

_.slice(array, [start=0], [end=array.length])

建立一个从 start 位置最先,但不包含 end 位置元素的 array 的分片

注重:该要领一般用来替换 IE < 9 以下的 Array#slice 函数,以确保麋集数组的返回。

参数

  1. array (Array) : 待分片的数组

  2. [start=0] (number) : 肇端位置

  3. [end=array.length] (number) : 完毕位置

返回
(Array) : 返回 array 的分片

_.sortedIndex(array, value, [iteratee=_.identity], [thisArg])

运用二分查找来肯定 valuearray 中应当插进去的最小的索引位置(为了坚持 array 的排序递次)。假如为了盘算其排序值而将 value 和每次遍历的元素传入迭代函数,那末迭代器将绑定 thisArg 并在实行时传入一个参数 value

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. array (Array) : 待搜检的已整顿过的数组

  2. value (*) : 待盘算的值

  3. [iteratee=_.identity] (Function|Object|string) : 每次迭代实行的函数

  4. [thisArg] (*) : iteratee 绑定的 this

返回

(number) : 返回 valuearray 中应当插进去的索引位置

示例

_.sortedIndex([30, 50], 40);
// → 1

_.sortedIndex([4, 4, 5, 5], 5);
// → 2

var dict = { 'data': { 'thirty': 30, 'forty': 40, 'fifty': 50 } };

// 运用迭代器函数
_.sortedIndex(['thirty', 'fifty'], 'forty', function(word) {
  return this.data[word];
}, dict);
// → 1

// 运用 `_.property` 回调函数简称
_.sortedIndex([{ 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x');
// → 1

_.sortedLastIndex(array, value, [iteratee=_.identity], [thisArg])

该要领相似 _.sortedIndex,但其返回的是 array 插进去 value的最大的索引位置。

参数

  1. array (Array) : 待搜检的已整顿的数组

  2. value (*) : 待盘算的值

  3. [iteratee=_.identity] _(Function|Object|string)_: 每次迭代时实行的函数

  4. [thisArg] (*) : iteratee 绑定的 this

返回

(number) : 返回 valuearray 中应当插进去的索引位置

示例

_.sortedLastIndex([4, 4, 5, 5], 5);
// → 4

_.take(array, [n=1])

建立一个从 array 的肇端位置最先起共 n 个元素的分片。

参数

  1. array (Array) : 待查询的数组

  2. [n=1] (number) : 猎取元素的个数

返回

(Array) : 返回 array 的分片

示例

_.take([1, 2, 3]);
// → [1]

_.take([1, 2, 3], 2);
// → [1, 2]

_.take([1, 2, 3], 5);
// → [1, 2, 3]

_.take([1, 2, 3], 0);
// → []

_.takeRight(array, [n=1])

建立一个从 array 的完毕位置最先起共 n 个元素的分片。

参数

  1. array (Array) : 待查询的数组

  2. [n=1] (number) : 猎取元素的个数

返回

(Array) : 返回 array 的分片

示例

_.takeRight([1, 2, 3]);
// → [3]

_.takeRight([1, 2, 3], 2);
// → [2, 3]

_.takeRight([1, 2, 3], 5);
// → [1, 2, 3]

_.takeRight([1, 2, 3], 0);
// → []

_.takeRightWhile(array, [predicate=_.identity], [thisArg])

建立一个从 array 的完毕位置最先起包含若干个元素的分片。在 predicate 返回假值之前,元素都将被传入分片当中。断言函数将绑定 thisArg 并传入三个参数:value, index, array

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. array (Array) : 待查询的数组

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(Array) : 返回 array 的分片

示例

_.takeRightWhile([1, 2, 3], function(n) {
  return n > 1;
});
// → [2, 3]

var users = [
  { 'user': 'barney',  'active': true },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': false }
];

// 运用 `_.matches` 回调函数简称
_.pluck(_.takeRightWhile(users, { 'user': 'pebbles', 'active': false }), 'user');
// → ['pebbles']

// 运用 `_.matchesProperty` 回调函数简称
_.pluck(_.takeRightWhile(users, 'active', false), 'user');
// → ['fred', 'pebbles']

// 运用 `_.property` 回调函数简称
_.pluck(_.takeRightWhile(users, 'active'), 'user');
// → []

_.takeWhile(array, [predicate=_.identity], [thisArg])

建立一个从 array 的肇端位置最先起包含若干个元素的分片。在 predicate 返回假值之前,元素都将被传入分片当中。断言函数将绑定 thisArg 并传入三个参数:value, index, array

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

参数

  1. array (Array) : 待查询的数组

  2. [predicate=_.identity] (Function|Object|string) : 每次迭代实行的函数

  3. [thisArg] (*) : predicate 绑定的 this

返回

(Array) : 返回 array 的分片

示例

_.takeWhile([1, 2, 3], function(n) {
  return n < 3;
});
// → [1, 2]

var users = [
  { 'user': 'barney',  'active': false },
  { 'user': 'fred',    'active': false},
  { 'user': 'pebbles', 'active': true }
];

// 运用 `_.matches` 回调函数简称
_.pluck(_.takeWhile(users, { 'user': 'barney', 'active': false }), 'user');
// → ['barney']

// 运用 `_.matchesProperty` 回调函数简称
_.pluck(_.takeWhile(users, 'active', false), 'user');
// → ['barney', 'fred']

// 运用 `_.property` 回调函数简称
_.pluck(_.takeWhile(users, 'active'), 'user');
// → []

_.union([arrays])

建立一个含有唯一值的数组,从每一个数组猎取的值在插进去时都邑运用 SameValueZero 和合并后的数组的值举行相称性比较。

参数

  1. [arrays] (…Array) : 待搜检的数组

返回

(Array) : 返回组合值的新数组

示例

_.union([1, 2], [4, 2], [2, 1]);
// → [1, 2, 4]

_.uniq(array, [isSorted], [iteratee], [thisArg])

Creates a duplicate-free version of an array, using SameValueZero for equality comparisons, in which only the first occurrence of each element is kept. Providing true for isSorted performs a faster search algorithm for sorted arrays. If an iteratee function is provided it’s invoked for each element in the array to generate the criterion by which uniqueness is computed. The iteratee is bound to thisArg and invoked with three arguments: (value, index, array).

假如供应的是属性名,那末 predicate 将建立 _.property 作风的回调函数,并返回给定元素的属性的值。

假如值还供应了 thisArg,那末 predicate 将建立 _.matchesProperty 作风的回调,并在元素含有婚配的属性值的时刻返回 true,不然返回 false

假如供应的是对象,那末 predicate 将建立 _.matches 作风的回调函数,并在婚配给定对象的属性的元素时返回 true,不然返回 false

别号

  • _.unique

参数

  1. array (Array) : 待搜检的数组

  2. [isSorted] (boolean) : 指定数组是不是已整顿

  3. [iteratee] (Function|Object|string) : 每次迭代实行的函数

  4. [thisArg] (*) : iteratee 绑定的 this

返回

(Array) : 返回一个无反复值的新数组

示例

_.uniq([2, 1, 2]);
// → [2, 1]

// 运用 `isSorted`
_.uniq([1, 1, 2], true);
// → [1, 2]

// 运用迭代器函数
_.uniq([1, 2.5, 1.5, 2], function(n) {
  return this.floor(n);
}, Math);
// → [1, 2.5]

// 运用 `_.property` 回调函数简称
_.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
// → [{ 'x': 1 }, { 'x': 2 }]

_.unzip(array)

该要领相似 _.zip,但其接收一个含有分组元素的数组,并建立一个含有运用预紧缩设置的重组元素的数组(creates an array regrouping the elements to their pre-zip configuration)。

参数

  1. array (Array) : 待处置惩罚的各元素数组

返回

(Array) : 返回含有重组的元素的新数组

示例

var zipped = _.zip(['fred', 'barney'], [30, 40], [true, false]);
// → [['fred', 30, true], ['barney', 40, false]]

_.unzip(zipped);
// → [['fred', 'barney'], [30, 40], [true, false]]

_.unzipWith(array, [iteratee], [thisArg])

该函数相似 _.unzip,但其接收一个指定值应当怎样连系的迭代器。iteratee 迭代器绑定 thisArg 并在实行时传入四个参数:accumulator, value, index, group

参数

  1. array (Array) : 待处置惩罚的各元素数组

  2. [iteratee] (Function) : 处置惩罚重组值的函数

  3. [thisArg] (*) : iteratee 绑定的 this

返回

(Array) : 返回含有重组的元素的新数组

示例

var zipped = _.zip([1, 2], [10, 20], [100, 200]);
// → [[1, 10, 100], [2, 20, 200]]

_.unzipWith(zipped, _.add);
// → [3, 30, 300]

_.without(array, [values])

建立一个不包含一切传入的值的数组(运用 SameValueZero 举行相称性比较)。

参数

  1. array (Array) : 待过滤的数组

  2. [values] (…*) : 待消除的值

返回

(Array) : 返回一个含有过滤后的值的新数组

示例

_.without([1, 2, 1, 3], 1, 2);
// → [3]

_.xor([arrays])

Creates an array of unique values that is the symmetric difference of the provided arrays.

建立一个含有唯一值(每一个值在各个数组中 对称差)的数组。

参数

  1. [arrays] (…Array) : 待搜检的数组

返回
(Array) : 返回一个含有值的新数组

示例

_.xor([1, 2], [4, 2]);
// → [1, 4]

_.zip([arrays])

建立一个含有同组元素的新数组,第一个元素含有每一个给定数组的第一个元素,第二个元素含有每一个给定数组的第二个元素,以此类推。

参数

  1. [arrays] (…Array) : 待处置惩罚的数组

返回

(Array) : 返回一个含有同组元素的新数组

示例

_.zip(['fred', 'barney'], [30, 40], [true, false]);
// → [['fred', 30, true], ['barney', 40, false]]

_.zipObject(props, [values=[]])

作用与 _.pairs 相反。该要领返回一个由属性名数组和值数组构成的对象。须要供应一个长度只为 2 的数组,比方:[[key1, value1], [key2, value2]] 。或许一个为属性名的数组,另一个为属性值的数组。

别号

  • _.object

参数

  1. props (Array) : 属性名组

  2. [values=[]] (Array) : 属性值组

返回

(Object) : 返回一个新的对象。

示例

_.zipObject([['fred', 30], ['barney', 40]]);
// → { 'fred': 30, 'barney': 40 }

_.zipObject(['fred', 'barney'], [30, 40]);
// → { 'fred': 30, 'barney': 40 }

_.zipWith([arrays], [iteratee], [thisArg])

该要领相似 _.zip,但其接收一个指定值应当怎样连系的迭代器。iteratee 迭代器绑定 thisArg 并在实行时传入四个参数:accumulator, value, index, group

参数

  1. [arrays] (…Array) : 待处置惩罚的数组

  2. [iteratee] (Function) : 处置惩罚重组值的函数

  3. [thisArg] (*) : iteratee 绑定的 this

返回

(Array) : 返回含有重组的元素的新数组

示例

_.zipWith([1, 2], [10, 20], [100, 200], _.add);
// → [111, 222]
    原文作者:PeckZeg
    原文地址: https://segmentfault.com/a/1190000004237402
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞