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

删除第一个元素

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

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

删除第二个元素

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

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

当前回答

也许是这样的:

arr=arr.slice(1);

其他回答

Array.splice()有一个有趣的属性,即不能使用它来删除第一个元素。所以,我们需要求助于

function removeAnElement( array, index ) {
    index--;

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

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

var indexToRemove = 0;
var numberToRemove = 1;

arr.splice(indexToRemove, numberToRemove);

shift方法从数组中删除第一个元素,并返回它。它修改原始数组。

var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]

你也可以用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())

也许是这样的:

arr=arr.slice(1);