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

删除第一个元素

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

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

删除第二个元素

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

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

当前回答

写了一篇关于在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的其他答案没有什么不同,但是splice这个名称不是直观的,如果在整个应用程序中都有这个调用,它只会使代码更难阅读。

其他回答

你也可以用reduce:

let arr = [1, 2, 3]

arr.reduce((xs, x, index) => {
        if (index == 0) {
            return xs
        } else {
            return xs.concat(x)
        }
    }, Array())

// Or if you like a oneliner
arr.reduce((xs, x, index) => index == 0 ? xs : xs.concat(x), Array())

写了一篇关于在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的其他答案没有什么不同,但是splice这个名称不是直观的,如果在整个应用程序中都有这个调用,它只会使代码更难阅读。

不改变原始数组的Typescript解决方案

function removeElementAtIndex<T>(input: T[], index: number) {
  return input.slice(0, index).concat(input.slice(index + 1));
}

对于更灵活的解决方案,使用splice()函数。它允许你根据索引值删除数组中的任何项:

var indexToRemove = 0;
var numberToRemove = 1;

arr.splice(indexToRemove, numberToRemove);

也许是这样的:

arr=arr.slice(1);