如何在 JavaScript 中从数组中删除元素

JavaScript 提出了几种从现有数组中删除元素的方法。

我们可以使用 pop() 从数组末尾删除项目,使用 shift() 从开头删除项目,或者使用 splice() 函数从中间删除项目。

让我们来讨论一下。

pop()

Array.prototype.shift() 方法用于从数组中删除最后一个元素并返回该元素:

let myArray = ["1", "2", "3", "4"];
console.log(myArray.shift());

pop() 和 shift() 方法改变数组的长度。

我们可以使用 unshift() 方法向数组添加新元素。

delete 运算符

此运算符将删除索引中指定的元素(记住从零开始计数)。

let myArray = ["1", "2", "3", "4"];
delete myArray[2];
console.log(myArray); //Output: [ "1", "2", null, "4" ]

delete 操作符实际上不会从数组中删除元素,它只是释放内存。
如果没有更多对该值的引用,则释放内存。

splice()

Array.prototype.splice() 方法用于通过删除或者替换现有项目和/或者添加新项目来更改数组的内容。
第一个参数定义开始添加或者删除元素的位置。
第二个参数定义要删除的元素数。
第三个和随后的参数是可选的;它们定义要添加到数组中的元素。

在位置 2 删除 1 个项目:

let myArray = ['a', 'b', 'c', 'd'];
console.log(myArray.splice(2, 1));

splice() 与 indexOf() 结合从数组中删除一个或者多个项目。

indexOf() 搜索并删除特定元素。
该方法将返回可以在数组中找到指定元素的第一个索引,如果不存在,则返回 -1:

let myArray = ["a", "b", "c", "d"];
 console.log(myArray.splice (myArray.indexOf('c'), 2));

filter()

filter() 方法创建一个新数组,与 splice() 不同。

该方法不会修改调用它的数组,而是返回一个全新的数组:

function isEven(value) { 
  return value%2 == 0; 
} 
arr = [13, 8, 15, 31, 44];
function func() { 
  console.log(arr.filter(isEven)); 
} 
func();
日期:2020-06-02 22:16:24 来源:oir作者:oir