lodash中数组删除常用的api

lodash 中数组删除常用的 api

1、pull

说明: 移除数组 array 中所有和给定值相等的元素,使用 SameValueZero 进行全等比。

注意: 和 without 方法不同,这个方法会改变数组。使用remove 从一个数组中移除元素。

示例:

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

2、pullAll

说明: 类似 pull,区别是它接收一个要移除值的数组。

注意: 不同于 difference, 这个方法会改变数组 array

示例:

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

3、pullAt

说明: 根据索引 indexes,移除 array 中对应的元素,并返回被移除元素的数组。

注意: 和 at 不同, 这个方法会改变数组 array

示例:

var array = [5, 10, 15, 20];
var evens = _.pullAt(array, 1, 3);
 
console.log(array);
// => [5, 15]
 
console.log(evens);
// => [10, 20]

4、remove

说明: 移除数组中 predicate(断言)返回为真值的所有元素,并返回移除元素组成的数组。predicate(断言) 会传入3个参数: (value, index, array)。

注意: 和 filter 不同, 这个方法会改变数组 array。使用 pull 来根据提供的 value 值从数组中移除元素。

示例:

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]

5、without

说明: 创建一个剔除所有给定值的新数组,剔除值的时候,使 SameValueZero 做相等比较。

注意: 不像 pull, 这个方法会返回一个新数组。

示例:

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

6、difference

说明: 创建一个具有唯一 array 值的数组,每个值不包含在其他给定的数组中。(注:即创建一个新数组,这个数组中的值,为第一个数字(array 参数)排除了给定数组中的值。)该方法使用 SameValueZero 做相等比较。结果值的顺序是由第一个数组中的顺序确定。

注意: 不像 pullAll,这个方法会返回一个新数组。

示例:

_.difference([3, 2, 1], [4, 2]);
// => [3, 1]

总结

综上, 是在开发中常用到的一些数组移除元素的方法,可以有效快捷地开发功能需求, 这些方法按以下条件可以区分一下.

改变原数组

  • pull
  • pullAll
  • pullAt
  • remove

返回一个新数组

  • difference
  • without
  • pullAt
  • remove

既改变原数组, 又返回移除元素组成的新数组

  • pullAt
  • remove

猜你喜欢

转载自blog.csdn.net/qq_16525279/article/details/127487407