lodash数组发现之旅--------The second day

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

这个方法类似 _.intersection,区别是它接受一个 iteratee 调用每一个arrays的每个值以产生一个值,通过产生的值进行了比较。结果值是从第一数组中选择。iteratee 会传入一个参数:(value)

_.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 分隔的字符串。

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

_.last(array)

获取array中的最后一个元素。

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

这个方法类似 _IndexOf,区别是它是从右到左遍历array的元素。

需要注意的是:没有匹配值,返回 -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个元素。

_.pull(array, [values])

移除数组array中所有和给定值相等的元素

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)。 

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]
原文地址:https://www.cnblogs.com/katydids/p/11210421.html