一、splice()方法
splice()方法可以删除数组中的元素,并向数组添加新元素。它的语法如下:
array.splice(start, deleteCount, item1, item2, ...)
其中,start表示要删除元素的起始位置索引,deleteCount表示要删除元素的数量。如果想要添加新元素可以在splice()后面跟上要添加的新元素。
示例代码:
let fruits = ['banana', 'apple', 'orange', 'grapefruit']; // 删除1个元素 fruits.splice(2, 1); console.log(fruits); // ['banana', 'apple', 'grapefruit'] // 删除2个元素,并添加2个新元素 fruits.splice(1, 2, 'cherry', 'lemon'); console.log(fruits); // ['banana', 'cherry', 'lemon', 'grapefruit']
二、filter()方法
filter()方法可以返回一个新数组,并且该数组包含所有通过指定函数过滤的元素。其中,指定函数需要返回一个布尔值来指示每个元素是否应该被返回到新数组中。如果返回true则包含在新数组中,否则不包含。
当需要同时删除多个元素时,可以利用filter()方法来实现,代码如下:
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let toBeDeleted = [3, 5, 7]; let filtered = numbers.filter(e => !toBeDeleted.includes(e)); console.log(filtered); // [1, 2, 4, 6, 8, 9]
三、for循环操作
在JS中,我们可以通过for循环来遍历数组,找到需要删除的元素,并移除它们。具体实现代码如下:
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let toBeDeleted = [3, 5, 7]; for (let i = numbers.length - 1; i >= 0; i--) { if (toBeDeleted.includes(numbers[i])) { numbers.splice(i, 1); } } console.log(numbers); // [1, 2, 4, 6, 8, 9]
四、set结构
JS中的Set结构可以去重并保存没有重复值的数组,可以利用它来操作数组删除。
示例代码如下:
let numbers = new Set([1, 2, 3, 4, 5, 6, 7, 8, 9]); let toBeDeleted = [3, 5, 7]; toBeDeleted.forEach(e => { numbers.delete(e); }); console.log(numbers); // Set {1, 2, 4, 6, 8, 9}
五、lodash库中的_.without()方法
lodash库是JS的一个实用工具库,它提供了很多常用的工具函数。其中,_.without()方法可以用于从数组中删除指定的元素,并返回新的数组。
示例代码如下:
let _ = require('lodash'); let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let toBeDeleted = [3, 5, 7]; let filtered = _.without(numbers, ...toBeDeleted); console.log(filtered); // [1, 2, 4, 6, 8, 9]
六、总结
本文介绍了JS数组删除多个元素的多种方法,包括splice()方法、filter()方法、for循环操作、set结构以及lodash库中的_.without()方法。