?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
創(chuàng)建一個元素數(shù)組,分成長度為size
。如果array
不能均勻分割,最后的塊將成為剩余的元素。
3.0.0
array
(Array):要處理的數(shù)組。
[size=1]
(大?。?/em>:每個塊的長度
(Array):返回新的數(shù)組塊。
_.chunk(['a', 'b', 'c', 'd'], 2);// => [['a', 'b'], ['c', 'd']] _.chunk(['a', 'b', 'c', 'd'], 3);// => [['a', 'b', 'c'], ['d']]
創(chuàng)建一個數(shù)組,其中刪除所有falsey值。以下的值——false
,null
,0
,""
,undefined
,和NaN
是 falsey。
0.1.0
array
(Array):要壓縮的數(shù)組。
(Array):返回新的過濾值數(shù)組。
_.compact([0, 1, false, 2, '', 3]);// => [1, 2, 3]
創(chuàng)建array
與任何其他數(shù)組和/或值連接的新數(shù)組。
4.0.0
array
(Array):要連接的數(shù)組。
[values]
(... *):要連接的值。
(Array):返回新的連接數(shù)組。
var array = [1];var other = _.concat(array, 2, [3], [[4]]); console.log(other);// => [1, 2, 3, [4]] console.log(array);// => [1]
array
使用SameValueZero
相等性比較創(chuàng)建未包含在其他給定數(shù)組中的值數(shù)組。結果值的順序和引用由第一個數(shù)組確定。
注意:與_.pullAll
此不同,此方法返回一個新數(shù)組。
0.1.0
array
(Array):要檢查的數(shù)組。
[values]
(... Array):要排除的值。
(Array):返回新的過濾值數(shù)組。
_.difference([2, 1], [2, 3]);// => [1]
這種方法類似于_.difference
,不同的是它接受iteratee
并為每個元素調用array
并values
生成它們進行比較的標準。結果值的順序和引用由第一個數(shù)組確定。迭代器因此調用一個參數(shù):
(value).
注意:與_.pullAllBy
此不同,此方法返回一個新數(shù)組。
4.0.0
array
(Array):要檢查的數(shù)組。
[values]
(... Array):要排除的值。
[iteratee=_.identity]
(Function):每個元素調用的迭代器。
(Array):返回新的過濾值數(shù)組。
_.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); // => [1.2] // The `_.property` iteratee shorthand._. differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); // => [{ 'x': 2 }]
這種方法與_.difference
類似,不同之處在于它接受 comparator
被調用來比較的元素array
到values
。結果值的順序和引用由第一個數(shù)組確定。比較器因此調用兩個參數(shù):(arrVal,othVal)。
注意:與_.pullAllWith
此不同,此方法返回一個新數(shù)組。
4.0.0
array
(Array): The array to inspect.
[values]
(...Array): The values to exclude.
[comparator]
(Function): The comparator invoked per element.
(Array):返回新的過濾值數(shù)組。
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); // => [{ 'x': 2, 'y': 1 }]
創(chuàng)建n
元素從一開始就下降的部分array
0.5.0
array
(Array):要查詢的數(shù)組。
[n=1]
(數(shù)字):要刪除的元素數(shù)量。
(數(shù)組):返回部分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]
創(chuàng)建從最后開始使用n
刪除元素的一部分array
3.0.0
array
(Array):要查詢的數(shù)組。
[n=1]
(數(shù)字):要刪除的元素數(shù)量。
(數(shù)組):返回一部分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]
創(chuàng)建一個array
從結尾刪除的排除元素的片段。元素被丟棄,直到predicate
返回falsey。謂詞用三個參數(shù)調用:(value,index,array)。
3.0.0
array
(Array):要查詢的數(shù)組。
[predicate=_.identity]
(Function):每次迭代調用的函數(shù)。
(數(shù)組):返回一部分array
。
var users = [ { 'user': 'barney', 'active': true }, { 'user': 'fred', 'active': false }, { 'user': 'pebbles', 'active': false }]; _.dropRightWhile(users, function(o) { return !o.active; }); // => objects for ['barney'] // The `_.matches` iteratee shorthand._.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); // => objects for ['barney', 'fred'] // The `_.matchesProperty` iteratee shorthand._.dropRightWhile(users, ['active', false]); // => objects for ['barney'] // The `_.property` iteratee shorthand._.dropRightWhile(users, 'active'); // => objects for ['barney', 'fred', 'pebbles']
創(chuàng)建從初始刪除的排除元素的一部分array
。元素被丟棄,直到 predicate
返回falsey。謂詞用三個參數(shù)調用:(value,index,array)。
3.0.0
array
(Array):要查詢的數(shù)組。
[predicate=_.identity]
(Function):每次迭代調用的函數(shù)。
(數(shù)組):返回部分array
。
var users = [ { 'user': 'barney', 'active': false }, { 'user': 'fred', 'active': false }, { 'user': 'pebbles', 'active': true }]; _.dropWhile(users, function(o) { return !o.active; }); // => objects for ['pebbles'] // The `_.matches` iteratee shorthand._.dropWhile(users, { 'user': 'barney', 'active': false }); // => objects for ['fred', 'pebbles'] // The `_.matchesProperty` iteratee shorthand._.dropWhile(users, ['active', false]); // => objects for ['pebbles'] // The `_.property` iteratee shorthand._.dropWhile(users, 'active'); // => objects for ['barney', 'fred', 'pebbles']
填充的元素array
與value
來自start
為止,但不包括end
。
注意: 此方法發(fā)生變化array
。
3.2.0
array
(Array):要填充的數(shù)組。
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, 10], '*', 1, 3); // => [4, '*', '*', 10]
這個方法就像_.find
,不同的是它返回第一個元素的索引,predicate
返回truthy而不是元素本身。
1.1.0
array
(Array):要檢查的數(shù)組。
[predicate=_.identity]
(Function):每次迭代調用的函數(shù)。
[fromIndex=0]
(number):從中搜索的索引。
(number):返回找到的元素的索引,else -1
。
var users = [ { 'user': 'barney', 'active': false }, { 'user': 'fred', 'active': false }, { 'user': 'pebbles', 'active': true }]; _.findIndex(users, function(o) { return o.user == 'barney'; }); // => 0 // The `_.matches` iteratee shorthand._. findIndex(users, { 'user': 'fred', 'active': false }); // => 1 // The `_.matchesProperty` iteratee shorthand._. findIndex(users, ['active', false]); // => 0 // The `_.property` iteratee shorthand._. findIndex(users, 'active'); // => 2
這個方法就像_.findIndex
,不同的是它遍歷collection
從右到左的元素。
2.0.0
array
(Array):要檢查的數(shù)組。
[predicate=_.identity]
(Function):每次迭代調用的函數(shù)。
[fromIndex=array.length-1]
(number):從中搜索的索引。
(number):返回找到的元素的索引,否則返回-1
。
var users = [ { 'user': 'barney', 'active': true }, { 'user': 'fred', 'active': false }, { 'user': 'pebbles', 'active': false }]; _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); // => 2 // The `_.matches` iteratee shorthand._. findLastIndex(users, { 'user': 'barney', 'active': true }); // => 0 // The `_.matchesProperty` iteratee shorthand._. findLastIndex(users, ['active', false]); // => 2 // The `_.property` iteratee shorthand._. findLastIndex(users, 'active'); // => 0
以單一的深度統(tǒng)一array
0.1.0
array
(數(shù)組):要平化的數(shù)組。
( Array ):返回新的展平數(shù)組。
_.flatten([1, [2, [3, [4]], 5]]); // => [1, 2, [3, [4]], 5]
遞歸地平化array
。
3.0.0
array
(Array):要平化的數(shù)組。
(Array):返回新的展平數(shù)組。
_.flattenDeep([1, [2, [3, [4]], 5]]); // => [1, 2, 3, 4, 5]
遞歸平化array
高達depth
倍。
4.4.0
array
(Array):要平化的數(shù)組。
[depth=1]
(number):最大遞歸深度。
(Array): 返回新的平化數(shù)組
var array = [1, [2, [3, [4]], 5]]; _.flattenDepth(array, 1); // => [1, 2, [3, [4]], 5] _.flattenDepth(array, 2); // => [1, 2, 3, [4], 5]
相反的_.toPairs
; 此方法返回由鍵值組成的對象 pairs
。
4.0.0
pairs
(Array): 值鍵對
(Object):返回新的對象。
_.fromPairs([['a', 1], ['b', 2]]); // => { 'a': 1, 'b': 2 }
獲取array
的第一個元素。
0.1.0
_.first
array
(Array):要查詢的數(shù)組。
(*):返回array
的第一個元素。
_.head([1, 2, 3]);// => 1 _.head([]);// => undefined
獲取在其中第一次出現(xiàn)的索引,與value
中被發(fā)現(xiàn)array
使用SameValueZero
的相等比較。如果fromIndex
為負值,則將其用作從結尾開始的偏移量array
。
0.1.0
array
(Array):要檢查的數(shù)組。
value
(*):要搜索的值。
[fromIndex=0]
(number):從中搜索的索引。
(number):返回匹配值的索引,否則返回-1
。
_.indexOf([1, 2, 1, 2], 2); // => 1 // Search from the `fromIndex`._. indexOf([1, 2, 1, 2], 2, 2);// => 3
獲得array
中除了最后一個元素之外的所有元素
0.1.0
array
(Array):要查詢的數(shù)組。
(Array):返回部分array
。
_.initial([1, 2, 3]); // => [1, 2]
創(chuàng)建一個包含在所有給定數(shù)組中的唯一值數(shù)組,SameValueZero
用于相等性比較。結果值的順序和引用由第一個數(shù)組確定。
0.1.0
[arrays]
(... Array):要檢查的數(shù)組。
(Array):返回相交值的新數(shù)組。
_.intersection([2, 1], [2, 3]); // => [2]
這種方法類似于_.intersection
,不同的是它接受 iteratee
為每個元素的每個元素調用arrays
以生成它們進行比較的標準。結果值的順序和引用由第一個數(shù)組確定。迭代器因此調用一個參數(shù):
(value).
4.0.0
[arrays]
(... Array):要檢查的數(shù)組。
[iteratee=_.identity]
(Function):每個元素調用的迭代器。
(Array):返回相交值的新數(shù)組。
_.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); // => [2.1] // The `_.property` iteratee shorthand._. intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');// => [{ 'x': 1 }]
這個方法類似于_.intersection
不同的是它接受comparator
哪個被調用來比較元素arrays
。結果值的順序和引用由第一個數(shù)組確定。比較器調用兩個參數(shù):(arrVal,othVal)。
4.0.0
[arrays]
(... Array):要檢查的數(shù)組。
[comparator]
(Function):每個元素調用比較器。
(Array):返回相交值的新數(shù)組。
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; _.intersectionWith(objects, others, _.isEqual); // => [{ 'x': 1, 'y': 2 }]
將array
中所有元素轉換為由separator分隔的字符串
4.0.0
array
(Array):要轉換的數(shù)組。
[separator=',']
(string):元素分隔符。
(string):返回連接的字符串。
_.join(['a', 'b', 'c'], '~'); // => 'a~b~c'
獲取array
最后一個元素。
0.1.0
array
(Array):要查詢的數(shù)組。
(*):返回array
的最后一個元素。
_.last([1, 2, 3]); // => 3
這個方法就像_.indexOf
,不同的是它遍歷array
從右到左的元素。
0.1.0
array
(Array):要檢查的數(shù)組。
value
(*):要搜索的值。
[fromIndex=array.length-1]
(number):從中搜索的索引。
(number):返回匹配值的索引,否則返回-1
。
_.lastIndexOf([1, 2, 1, 2], 2); // => 3 // Search from the `fromIndex`._.lastIndexOf([1, 2, 1, 2], 2, 2);// => 1
獲取索引n
處的元素array
。如果n
是負數(shù),則返回從結尾開始的第n個元素。
4.11.0
array
(Array):要查詢的數(shù)組。
[n=0]
(number):要返回的元素的索引。
(*):返回array
的第n個元素。
var array = ['a', 'b', 'c', 'd']; _.nth(array, 1);// => 'b' _.nth(array, -2);// => 'c';
將刪除所有給定值array
用SameValueZero
平等地比較。
注意:與_.without
不同,此方法會發(fā)生使array
變化,用_.remove
謂詞從數(shù)組中移除元素。
2.0.0
array
(Array):要修改的數(shù)組。
[values]
(... *):要刪除的值。
(Array):返回array
。
var array = ['a', 'b', 'c', 'a', 'b', 'c']; _.pull(array, 'a', 'c');console.log(array); // => ['b', 'b']
這個方法就像_.pull
,不同的是它接受一個要移除的值的數(shù)組。
注意:與_.difference
此不同,此方法會使array
發(fā)生變化。
4.0.0
array
(Array):要修改的數(shù)組。
values
(Array):要刪除的值。
(Array):返回array
。
var array = ['a', 'b', 'c', 'a', 'b', 'c']; _.pullAll(array, ['a', 'c']);console.log(array); // => ['b', 'b']
這種方法類似于_.pullAll
,不同的是它接受iteratee
為每個元素調用array
并values
生成它們進行比較的標準。迭代器調用一個參數(shù):(value)。
注意:與_.differenceBy
此不同,此方法會使array
發(fā)生變化。
4.0.0
array
(Array):要修改的數(shù)組。
values
(Array):要刪除的值。
[iteratee=_.identity]
(Function):每個元素調用的迭代器。
(Array):返回array
。
var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');console.log(array); // => [{ 'x': 2 }]
這種方法如_.pullAll
,不同之處在于它接受comparator
被調用來比較的元素array
到values
。比較器被調用兩個參數(shù):(arrVal,othVal)。
注意:與_.differenceWith
不同,此方法會使array
發(fā)生變化。
4.6.0
array
(Array):要修改的數(shù)組。
values
(Array):要刪除的值。
[comparator]
(Function):每個元素調用比較器。
(Array):返回array
。
var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); console.log(array); // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
從array
相應的元素中移除元素indexes
并返回一個已移除元素的數(shù)組。
注意:與_.at
此不同,此方法會使array
發(fā)生變化 。
3.0.0
array
(Array):要修改的數(shù)組。
[indexes]
(...(number | number [])):要移除的元素的索引。
(Array):返回已移除元素的新數(shù)組。
var array = ['a', 'b', 'c', 'd']; var pulled = _.pullAt(array, [1, 3]); console.log(array);// => ['a', 'c'] console.log(pulled);// => ['b', 'd']
從array
移除所有元素,predicate
返回truthy并返回刪除的元素的陣列。謂詞用三個參數(shù)調用:(value,index,array)。
注意: 與_.filter
此不同,此方法會使之發(fā)生變化。用于_.pull
通過值從數(shù)組中提取元素。
2.0.0
array
(Array):要修改的數(shù)組。
[predicate=_.identity]
(Function):每次迭代調用的函數(shù)。
(Array):返回已移除元素的新數(shù)組。
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]
反轉array
使第一個元素成為最后一個,第二個元素成為倒數(shù)第二個元素,依此類推。
注意:此方法變異于array
并基于Array#reverse
。
4.0.0
array
(Array):要修改的數(shù)組。
(數(shù)組):返回array
。
var array = [1, 2, 3]; _.reverse(array);// => [3, 2, 1] console.log(array);// => [3, 2, 1]
創(chuàng)建一個array
從start
一直到但不包括自身的部分end
。
注意:此方法用于Array#slice
以確保返回密集數(shù)組。
3.0.0
array
(Array):要切片的數(shù)組。
[start=0]
(number):開始位置。
[end=array.length]
(number):結束位置。
(Array):返回部分array
。
使用二進制搜索來確定value
應該插入的最低索引即array
的最低索引以便維護其排序順序。
0.1.0
array
(Array):要檢查的排序數(shù)組。
value
(*):要評估的值。
(number):返回value
應插入的索引array
。
_.sortedIndex([30, 50], 40);// => 1
這個方法就像_.sortedIndex
,不同的是它接受 iteratee
調用的方法value
和每個元素array
來計算它們的排序順序。迭代器被調用一個參數(shù):(value)。
4.0.0
array
(Array):要檢查的排序數(shù)組。
value
(*):要評估的值。
[iteratee=_.identity]
(Function):每個元素調用的迭代器。
(number):返回value
應插入的索引array
。
var objects = [{ 'x': 4 }, { 'x': 5 }]; _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); // => 0 // The `_.property` iteratee shorthand. _.sortedIndexBy(objects, { 'x': 4 }, 'x');// => 0
這種方法就像_.indexOf
,不同的是它在排序后執(zhí)行二分搜索 array
。
4.0.0
array
(Array):要檢查的數(shù)組。
value
(*):要搜索的值。
(number):返回匹配值的索引,否則返回-1
。
_.sortedIndexOf([4, 5, 5, 5, 6], 5);// => 1
這個方法就像_.sortedIndex
,不同的是它返回value
應該插入array
的最高索引,以便維護它的排序順序。
3.0.0
array
(Array):要檢查的排序數(shù)組。
value
(*):要評估的值。
(number):返回value
應插入array
的索引。
_.sortedLastIndex([4, 5, 5, 5, 6], 5);// => 4
這個方法就像_.sortedLastIndex
,不同的是它接受iteratee
調用的方法value
和每個元素array
來計算它們的排序順序。迭代器被調用一個參數(shù):(value)。
4.0.0
array
(Array):要檢查的排序數(shù)組。
value
(*):要評估的值。
[iteratee=_.identity]
(Function):每個元素調用的迭代器。
(number):返回value
應插入的索引array
。
var objects = [{ 'x': 4 }, { 'x': 5 }]; _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); // => 1 // The `_.property` iteratee shorthand. _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');// => 1
這種方法就像_.lastIndexOf
,不同的是它在排序后執(zhí)行二分搜索array
。
4.0.0
array
(Array):要檢查的數(shù)組。
value
(*):要搜索的值。
(number):返回匹配值的索引,否則返回-1
。
_.sortedLastIndexOf([4, 5, 5, 5, 6], 5);// => 3
這種方法就像_.uniq
,不同的是它為排序數(shù)組設計和優(yōu)化的。
4.0.0
array
(Array):要檢查的數(shù)組。
(Array):返回新的重復空閑數(shù)組。
_.sortedUniq([1, 1, 2]);// => [1, 2]
這種方法就像_.uniqBy
,不同的是它是為排序數(shù)組設計和優(yōu)化的。
4.0.0
array
(Array):要檢查的數(shù)組。
[iteratee]
(Function):每個元素調用的迭代器。
(Array):返回新的重復空閑數(shù)組。
_.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);// => [1.1, 2.3]
除了第一個元素之外,都獲得array
的所有元素。
4.0.0
array
(Array):要查詢的數(shù)組。
(Array):返回部分array
。
_.tail([1, 2, 3]);// => [2, 3]
使用n
從頭開始的元素創(chuàng)建一部分array
。
0.1.0
array
(Array):要查詢的數(shù)組。
[n=1]
(number):要采取的元素數(shù)量。
(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);// => []
創(chuàng)建一個從最終獲得的n
元素的一部分array
3.0.0
array
(Array):要查詢的數(shù)組。
[n=1]
(number):要采取的元素數(shù)量。
(number):返回部分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);// => []
創(chuàng)建一個從最后采取的元素的一部分array
。提取元素,直到 predicate
返回falsey為止。謂詞用三個參數(shù)調用:(value,index,array)。
3.0.0
array
(Array):要查詢的數(shù)組。
[predicate=_.identity]
(Function):每次迭代調用的函數(shù)。
(Array):返回部分array
。
var users = [ { 'user': 'barney', 'active': true }, { 'user': 'fred', 'active': false }, { 'user': 'pebbles', 'active': false }]; _.takeRightWhile(users, function(o) { return !o.active; }); // => objects for ['fred', 'pebbles'] // The `_.matches` iteratee shorthand. _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); // => objects for ['pebbles'] // The `_.matchesProperty` iteratee shorthand. _.takeRightWhile(users, ['active', false]); // => objects for ['fred', 'pebbles'] // The `_.property` iteratee shorthand. _.takeRightWhile(users, 'active'); // => []
使用從頭開始的元素創(chuàng)建一部分array
。提取元素直到predicate
返回false為止。謂詞用三個參數(shù)調用:(value,index,array)。
3.0.0
array
(Array):要查詢的數(shù)組。
[predicate=_.identity]
(Function):每次迭代調用的函數(shù)。
(Array):返回部分array
。
var users = [ { 'user': 'barney', 'active': false }, { 'user': 'fred', 'active': false }, { 'user': 'pebbles', 'active': true }]; _.takeWhile(users, function(o) { return !o.active; }); // => objects for ['barney', 'fred'] // The `_.matches` iteratee shorthand. _.takeWhile(users, { 'user': 'barney', 'active': false }); // => objects for ['barney'] // The `_.matchesProperty` iteratee shorthand. _.takeWhile(users, ['active', false]); // => objects for ['barney', 'fred'] // The `_.property` iteratee shorthand. _.takeWhile(users, 'active'); // => []
從所有給定的數(shù)組中依次創(chuàng)建一個唯一值數(shù)組,SameValueZero
用于相等性比較。
0.1.0
[arrays]
(... Array):要檢查的數(shù)組。
(Array):返回組合值的新數(shù)組。
_.union([2], [1, 2]);// => [2, 1]
這種方法類似,_.union
,不同之處在于它接受iteratee
為每個元素調用每個元素arrays
以生成唯一性計算標準。結果值從第一個出現(xiàn)值的數(shù)組中選擇。迭代器被調用一個參數(shù):
(value).
4.0.0
[arrays]
(... Array):要檢查的數(shù)組。
[iteratee=_.identity]
(Function):每個元素調用的迭代器。
(Array):返回組合值的新數(shù)組。
_.unionBy([2.1], [1.2, 2.3], Math.floor); // => [2.1, 1.2] // The `_.property` iteratee shorthand. _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');// => [{ 'x': 1 }, { 'x': 2 }]
這個方法類似于_.union
,不同的是它接受comparator
哪個被調用來比較元素arrays
。結果值從第一個出現(xiàn)值的數(shù)組中選擇。比較器被調用兩個參數(shù):(arrVal,othVal)。
4.0.0
[arrays]
(... Array):要檢查的數(shù)組。
[comparator]
(Function):每個元素調用比較器。
(Array):返回組合值的新數(shù)組。
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; _.unionWith(objects, others, _.isEqual); // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
創(chuàng)建數(shù)組的無重復版本,SameValueZero
用于相等比較,其中只保留每個元素的第一個匹配項。結果值的順序由它們在數(shù)組中出現(xiàn)的順序決定。
0.1.0
array
(Array):要檢查的數(shù)組。
(Array):返回新的重復空閑數(shù)組。
_.uniq([2, 1, 2]);// => [2, 1]
此方法類似于_.uniq
,不同的是它接受iteratee
為每個元素調用array
以生成唯一性計算標準的方法。結果值的順序由它們在數(shù)組中出現(xiàn)的順序決定。迭代器被調用一個參數(shù):
(value).
4.0.0
array
(Array):要檢查的數(shù)組。
[iteratee=_.identity]
(Function):每個元素調用的迭代器。
(Array):返回新的重復空閑數(shù)組。
_.uniqBy([2.1, 1.2, 2.3], Math.floor); // => [2.1, 1.2] // The `_.property` iteratee shorthand. _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');// => [{ 'x': 1 }, { 'x': 2 }]
這個方法類似于_.uniq
,不同的是它接受comparator
哪個被調用來比較元素array
。結果值的順序由它們在數(shù)組中出現(xiàn)的順序決定。使用兩個參數(shù)調用比較器:(arrVal,othVal)。
4.0.0
array
(Array):要檢查的數(shù)組。
[comparator]
(Function):每個元素調用比較器。
(Array):返回新的重復空閑數(shù)組。
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; _.uniqWith(objects, _.isEqual); // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
這種方法就像_.zip
,不同的是它接受一個分組元素數(shù)組,并創(chuàng)建一個數(shù)組,將這些元素重新組合到它們的pre-zip配置中。
1.2.0
array
(Array):要處理的分組元素的數(shù)組。
(Array):返回重新組合元素的新數(shù)組。
var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); // => [['a', 1, true], ['b', 2, false]] _.unzip(zipped); // => [['a', 'b'], [1, 2], [true, false]]
這種方法就像_.unzip
,不同的是它接受iteratee
指定應該如何組合重組值。迭代器用每個組的元素調用: (... group)。
3.8.0
array
(Array):要處理的分組元素的數(shù)組。
[iteratee=_.identity]
(function):組合重組值的功能。
(Array):返回重新組合元素的新數(shù)組。
var zipped = _.zip([1, 2], [10, 20], [100, 200]); // => [[1, 10, 100], [2, 20, 200]] _.unzipWith(zipped, _.add); // => [3, 30, 300]
使用SameValueZero
相等比較創(chuàng)建排除所有給定值的數(shù)組。
注意:與_.pull
不同,此方法返回一個新數(shù)組。
0.1.0
array
(Array):要檢查的數(shù)組。
[values]
(... *):要排除的值。
(Array):返回新的過濾值數(shù)組。
_.without([2, 1, 2, 3], 1, 2);// => [3]
創(chuàng)建一個唯一值的數(shù)組,它是給定數(shù)組的對稱差異。結果值的順序由它們在數(shù)組中出現(xiàn)的順序決定。
2.4.0
[arrays]
(... Array):要檢查的數(shù)組。
(Array):返回新的過濾值數(shù)組。
_.xor([2, 1], [2, 3]);// => [1, 3]
這種方法就像_.xor
,不同的是它接受iteratee
為每個元素調用每個元素arrays
來生成他們所比較的標準。結果值的順序由它們在數(shù)組中出現(xiàn)的順序決定。迭代器被調用一個參數(shù):(value)。
4.0.0
[arrays]
(... Array):要檢查的數(shù)組。
[iteratee=_.identity]
(Function):每個元素調用的迭代器。
(Array):返回新的過濾值數(shù)組。
_.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); // => [1.2, 3.4] // The `_.property` iteratee shorthand. _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');// => [{ 'x': 2 }]
這個方法類似于_.xor
,不同的是它接受comparator
哪個被調用來比較元素arrays
。結果值的順序由它們在數(shù)組中出現(xiàn)的順序決定。比較器被調用兩個參數(shù):(arrVal,othVal)。
4.0.0
[arrays]
(... Array):要檢查的數(shù)組。
[comparator]
(Function):每個元素調用比較器。
(Array):返回新的過濾值數(shù)組。
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; _.xorWith(objects, others, _.isEqual); // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
創(chuàng)建一個分組元素數(shù)組,其中第一個元素包含給定數(shù)組的第一個元素,第二個元素包含給定數(shù)組的第二個元素,依此類推。
0.1.0
[arrays]
(... Array):要處理的數(shù)組。
(Array):返回分組元素的新數(shù)組。
_.zip(['a', 'b'], [1, 2], [true, false]); // => [['a', 1, true], ['b', 2, false]]
這個方法就像_.fromPairs
,它接受兩個數(shù)組,一個屬性標識符和一個相應的值。
0.4.0
[props=[]]
(Array):屬性標識符。
[values=[]]
(Array):屬性值。
(Object):返回新的對象。
_.zipObject(['a', 'b'], [1, 2]); // => { 'a': 1, 'b': 2 }
這種方法就像_.zipObject,
它支持屬性路徑。
4.1.0
[props=[]]
(Array):屬性標識符。
[values=[]]
(Array):屬性值。
(Object):返回新的對象。
_.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }
這個方法就像_.zip
,它接受iteratee
指定應該如何組合分組值。迭代器用每個組的元素調用:(... group)。
3.8.0
[arrays]
(... Array):要處理的數(shù)組。
[iteratee=_.identity]
(Function):組合分組值的功能。
(Array):返回分組元素的新數(shù)組。
_.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { return a + b + c;}); // => [111, 222]