Translated by PeckZeg
Original Docs: Lodash v3.10.1 Docsgit
2015-01-02
感谢 @neuront 对 _.flatten
翻译的建议github
_.chunk(array, [size=1])
建立一个元素分红长度为 size
的分组的数组。若是 collection
不能被均匀的分割,那么最后一个区块将会包含剩余的元素。数组
参数ide
array
(Array) : 待处理的数组函数
[size=1]
(number) : 每一个区块的长度this
返回
(Array) : 返回包含每一个区块的新数组.net
示例翻译
_.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
, ""
, undefined
和 NaN
均为假值。rest
参数日志
array
(Array) : 待简化的数组
返回
(Array) : 返回过滤值后的新数组
示例
_.compact([0, 1, false, 2, '', 3]); // → [1, 2, 3]
_.difference(array, [values])
建立一个每一个值都不包含在其余的提供的的数组内的值的数组(使用 SameValueZero
进行相等比较)。
参数
array
(Array) : 待检查的数组
[values]
(…Array) : 待排除值的数组
返回
(Array) : 返回过滤值后的新数组
示例
_.difference([1, 2, 3], [4, 2]); // → [1, 3]
_.drop(array, [n=1])
建立一个从起始位置开始删除 n
个元素后的数组分片。
参数
array
(Array) : 待查询的数组
[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
个元素后的数组分片。
参数
array
(Array) : 待查询的数组
[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
。
参数
array
(Array) : 待查询的数组
[predicate=_.identity]
(Function|Object|string) : 每次迭代将会执行的函数
[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
。
参数
array
(Array) : 待查询的数组
[predicate=_.identity]
(Function|Object|string) : 每次迭代将会执行的函数
[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
)
注意:该方法将改变数组
参数
array
(Array) : 带填充的数组
value
(*) : 填充至 array
的值
[start=0]
(number) : 起始位置
[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
。
参数
array
(Array) : 待查找的数组
[predicate=_.identity]
(Function|Object|string) : 每次迭代执行的函数
[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
。
参数
array
(Array) : 待查找的数组
[predicate=_.identity]
(Function|Object|string) : 每次迭代执行的函数
[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
参数
array
(Array) : 待查询的数组
返回
(*) : 返回 array
的第一个元素
示例
_.first([1, 2, 3]); // → 1 _.first([]); // → undefined
_.flatten(array, [isDeep])
链接全部数组元素。若是 isDeep
指定为 true
,那么数组元素会递归链接,不然它将只链接一层数组元素。
参数
array
(Array) : 待链接的数组
[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)
递归拍平一个嵌套数组
参数
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
,则将使用更高效的二分查找。
参数
array
(Array) : 待查找的数组
value
(*) : 待查找的值
[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
中全部元素(除了最后一个元素)
参数
array
(Array) : 待查询的数组
返回
(Array) : 返回 array
的分片
示例
_.initial([1, 2, 3]); // → [1, 2]
_.intersection([arrays])
获取全部传入数组中都包含的元素(使用 SameValueZero
进行相等性比较)
参数
[arrays]
(…Array) : 待检查的数组
返回
(Array) : 返回一个包含全部传入数组中都包含的元素的新数组
示例
_.intersection([1, 2], [4, 2], [2, 1]); // → [2]
_.last(array)
Gets the last element of array.
获取 array
的最后一个元素
参数
array
(Array) : 待查询的数组
返回
(*) : 返回 array
的最后一个元素
示例
_.last([1, 2, 3]); // → 3
_.lastIndexOf(array, value, [fromIndex=array.length-1])
这个函数相似 _.indexOf
,但它从右到左遍历 array
的全部元素
参数
array
(Array) : 待查找的数组
value
(*) : 待查找的值
[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
不一样,这个方法将会改变数组
参数
array
(Array) : 待修改的数组
[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
。
参数
array
(Array) : 待修改的数组
[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
不一样,该方法将改变数组
参数
array
(Array) : 待修改的数组
[predicate=_.identity]
(Function|Object|string) : 每次迭代执行的函数
[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
参数
返回
(Array) : 待查询的数组
返回
(Array) : 返回 array
的分片
示例
_.rest([1, 2, 3]); // → [2, 3]
_.slice(array, [start=0], [end=array.length])
建立一个从 start
位置开始,但不包含 end
位置元素的 array
的分片
注意:该方法一般用来替代 IE < 9 如下的 Array#slice
函数,以确保密集数组的返回。
参数
array
(Array) : 待分片的数组
[start=0]
(number) : 起始位置
[end=array.length]
(number) : 结束位置
返回
(Array) : 返回 array
的分片
_.sortedIndex(array, value, [iteratee=_.identity], [thisArg])
使用二分查找来肯定 value
在 array
中应该插入的最小的索引位置(为了保持 array
的排序顺序)。若是为了计算其排序值而将 value
和每次遍历的元素传入迭代函数,那么迭代器将绑定 thisArg
并在执行时传入一个参数 value
。
若是提供的是属性名,那么 predicate
将建立 _.property
风格的回调函数,并返回给定元素的属性的值。
若是值还提供了 thisArg
,那么 predicate
将建立 _.matchesProperty
风格的回调,并在元素含有匹配的属性值的时候返回 true
,不然返回 false
。
若是提供的是对象,那么 predicate
将建立 _.matches
风格的回调函数,并在匹配给定对象的属性的元素时返回 true
,不然返回 false
。
参数
array
(Array) : 待检查的已整理过的数组
value
(*) : 待计算的值
[iteratee=_.identity]
(Function|Object|string) : 每次迭代执行的函数
[thisArg]
(*) : iteratee
绑定的 this
返回
(number) : 返回 value
在 array
中应该插入的索引位置
示例
_.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
的最大的索引位置。
参数
array
(Array) : 待检查的已整理的数组
value
(*) : 待计算的值
[iteratee=_.identity]
_(Function|Object|string)_: 每次迭代时执行的函数
[thisArg]
(*) : iteratee
绑定的 this
返回
(number) : 返回 value
在 array
中应该插入的索引位置
示例
_.sortedLastIndex([4, 4, 5, 5], 5); // → 4
_.take(array, [n=1])
建立一个从 array
的起始位置开始起共 n
个元素的分片。
参数
array
(Array) : 待查询的数组
[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
个元素的分片。
参数
array
(Array) : 待查询的数组
[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
。
参数
array
(Array) : 待查询的数组
[predicate=_.identity]
(Function|Object|string) : 每次迭代执行的函数
[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
。
参数
array
(Array) : 待查询的数组
[predicate=_.identity]
(Function|Object|string) : 每次迭代执行的函数
[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
和归并后的数组的值进行相等性比较。
参数
[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
参数
array
(Array) : 待检查的数组
[isSorted]
(boolean) : 指定数组是否已整理
[iteratee]
(Function|Object|string) : 每次迭代执行的函数
[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)。
参数
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
。
参数
array
(Array) : 待处理的各元素数组
[iteratee]
(Function) : 处理重组值的函数
[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
进行相等性比较)。
参数
array
(Array) : 待过滤的数组
[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.
建立一个含有惟一值(每一个值在各个数组中 对称差)的数组。
参数
[arrays]
(…Array) : 待检查的数组
返回
(Array) : 返回一个含有值的新数组
示例
_.xor([1, 2], [4, 2]); // → [1, 4]
_.zip([arrays])
建立一个含有同组元素的新数组,第一个元素含有每一个给定数组的第一个元素,第二个元素含有每一个给定数组的第二个元素,以此类推。
参数
[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
参数
props
(Array) : 属性名组
[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
。
参数
[arrays]
(…Array) : 待处理的数组
[iteratee]
(Function) : 处理重组值的函数
[thisArg]
(*) : iteratee
绑定的 this
返回
(Array) : 返回含有重组的元素的新数组
示例
_.zipWith([1, 2], [10, 20], [100, 200], _.add); // → [111, 222]