_.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]