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]