lodash數組發現之旅--------The second day

_.intersectionBy([arrays], [iteratee=_.identity])

這個方法相似 _.intersection,區別是它接受一個 iteratee 調用每個arrays的每一個值以產生一個值,經過產生的值進行了比較。結果值是從第一數組中選擇。iteratee 會傳入一個參數:(value)javascript

_.intersectionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
// => [2.1]
 
_.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
// => [{ 'x': 1 }]

_.join(array, [separator=','])

將 array 中的全部元素轉換爲由 separator 分隔的字符串。java

_.join(['a', 'b', 'c'], '-');
// => 'a-b-c'

_.last(array)

獲取array中的最後一個元素。數組

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

這個方法相似 _IndexOf,區別是它是從右到左遍歷array的元素。ide

須要注意的是:沒有匹配值,返回 -1函數

_.lastIndexOf([1, 2, 1, 2], 2, 2);
// => 1

_.lastIndexOf([1, 2, 1, 2], 3, 2);
 // => -1

_.nth(array, [n=0])

獲取array數組的第n個元素。若是n爲負數,則返回從數組結尾開始的第n個元素。code

_.pull(array, [values])

移除數組array中全部和給定值相等的元素blog

var arr = [1, 2, 3, 1, 2, 3];
 
_.pull(arr, 2, 3);
// => [1, 1]

_.pullAll(array, values)

這個方法相似_.pull,區別是這個方法接收一個要移除值的數組。 索引

var arr = [1, 2, 3, 1, 2, 3];
 
_.pullAll(arr, [2, 3]);
// => [1, 1]

_.pullAllBy(array, values, [iteratee=_.identity])

這個方法相似於 _.pullAll ,區別是這個方法接受一個 iteratee(迭代函數) 調用 array 和 values的每一個值以產生一個值,經過產生的值進行了比較。iteratee 會傳入一個參數: (value)。 ip

var arr = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
 
_.pullAllBy(arr, [{ 'x': 1 }, { 'x': 3 }], 'x');
// => [{ 'x': 2 }]

_.pullAllWith(array, values, [comparator])

這個方法相似於 _.pullAll,區別是這個方法接受 comparator 調用array中的元素和values比較。comparator 會傳入兩個參數:(arrVal, othVal)。 字符串

var arr = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
 
_.pullAllWith(arr, [{ 'x': 3, 'y': 4 }], _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]

_.pullAt(array, [indexes])

根據索引 indexes,移除array中對應的元素,並返回被移除元素的數組。 

注意:原數組被改變

var arr = [5, 10, 15, 20];
var newarr = _.pullAt(array, 1, 3);
 
// arr => [5, 15]
// newarr => [10, 20]
相關文章
相關標籤/搜索