📅  最后修改于: 2023-12-03 15:01:41.293000             🧑  作者: Mango
在 Javascript 中,有多种方法可以从一个数组中删除元素,本文将介绍其中的几种方法。
splice() 方法可以删除一个或多个元素,并返回被删除的元素,同时修改原数组。
代码示例:
const arr = ["apple", "banana", "orange", "pear"];
const removed = arr.splice(1, 2);
console.log(arr); // ["apple", "pear"]
console.log(removed); // ["banana", "orange"]
上述代码中,splice() 方法的第一个参数是要删除元素的起始位置,第二个参数是要删除的元素个数。本例中,从数组的第一个位置开始删除两个元素。
slice() 方法可以返回一个新的数组,其中包含指定起始位置到结束位置之间的元素,不会影响原数组。可以将要删除的元素切分成两个段,在使用 concat() 方法将这两段重新拼接成一个新的数组。
代码示例:
const arr = ["apple", "banana", "orange", "pear"];
const removed = arr.slice(0, 1).concat(arr.slice(2));
console.log(arr); // ["apple", "banana", "orange", "pear"]
console.log(removed); // ["apple", "orange", "pear"]
上述代码中,slice() 方法的第一个参数是要提取的起始位置,第二个参数是要提取的结束位置。本例中,提取了数组的第一个元素以及第三个元素之后的所有元素。
filter() 方法可以创建一个新的数组,其中包含满足指定条件的元素,不会影响原数组。可以利用 filter() 方法来过滤掉要删除的元素。
代码示例:
const arr = ["apple", "banana", "orange", "pear"];
const removed = arr.filter((item, index) => index !== 1 && index !== 2);
console.log(arr); // ["apple", "banana", "orange", "pear"]
console.log(removed); // ["apple", "pear"]
上述代码中,filter() 方法接受一个函数作为参数,该函数会对数组中的每个元素执行一次,返回 true 或 false。如果返回 true,则对应元素会被包含在新的数组中,否则不会。本例中,返回 true 的条件是元素的下标不等于 1 和 2。
总的来说,Javascript 从数组中删除某些元素的方法有多种,选择哪一种方法取决于具体的需求。