如何从JavaScript中的数组中删除元素?

var arr = [1,2,3,5,6]; 

我想删除数组的第一个元素,使其成为:

 var arr = [2,3,5,6]; 

要扩展这个问题,如果我想删除数组的第二个元素,以便它变成:

 var arr = [1,3,5,6]; 

为了更灵活的解决scheme,使用splice()函数。 它允许您删除基于索引值的数组中的任何项目:

 var indexToRemove = 0; var numberToRemove = 1; arr.splice(indexToRemove, numberToRemove); 

shift()非常适合您的情况。 shift()从数组中移除第一个元素并返回该元素。 这个方法改变了数组的长度。

 array = [1, 2, 3, 4, 5]; array.shift(); // 1 array // [2, 3, 4, 5] 

Array.prototype.shift方法从数组中移除第一个元素,并返回它。 它修改了原始数组。

 var a = [1,2,3] // [1,2,3] a.shift() // 1 a //[2,3] 
 arr.slice(begin[,end]) 

是非破坏性的,拼接和移位会修改你的原始数组

写了一篇关于在Javascript数组中的任意位置插入和删除元素的小文章。

这里是从任何位置删除元素的小片段。 这扩展了JavaScript中的Array类,并添加了remove(index)方法。

 // Remove element at the given index Array.prototype.remove = function(index) { this.splice(index, 1); } 

因此,要删除示例中的第一个项目,请调用arr.remove():

 var arr = [1,2,3,5,6]; arr.remove(0); 

要删除第二个项目,

 arr.remove(1); 

这里有一个小小的文章 ,介绍了Array类的插入和删除方法。

从本质上来说,这与使用拼接的其他答案没有什么不同,但名称splice是非直观的,如果您在应用程序中都有这样的调用,那只会使代码更难读取。

也许这样的事情:

 arr=arr.slice(1); 

如果你想删除一个或多个数组的元素取决于其内容和/或其位置

你可以使用js filter数组function。

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter

删除第一个元素

 // Not very useful but it works function removeFirst(element, index) { return index > 0; } var arr = [1,2,3,5,6].filter(removeFirst); // [2,3,4,5,6] 

删除第二个元素

 function removeSecond(element, index) { return index != 1; } var arr = [1,2,3,5,6].filter(removeSecond); // [1,3,4,5,6] 

删除奇怪的元素

 function removeOdd(element, index) { return !(element % 2); } var arr = [1,2,3,5,6].filter(removeOdd); [2,4,6] 

Array.splice()有一个有趣的属性,不能用它去除第一个元素。 所以,我们需要诉诸

 function removeAnElement( array, index ) { index--; if ( index === -1 ) { return array.shift(); } else { return array.splice( index, 1 ); } }