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