我有下面的数组。

var arr = [1,0,2];

我想删除最后一个元素,即2。

我使用了arr。slice(-1);但它并没有删除值。


当前回答

假设你有var arr = [1,0,2]

Arr.splice(-1,1)将返回数组[1,0];而arr.slice(-1,1)将返回数组[2];

其他回答

这是删除最后一项的好方法:

if (arr != null && arr != undefined && arr.length > 0) {
      arr.splice(arr.length - 1, 1);
}

拼接细节如下:

splice(startIndex, splice的个数)

splice(index,howmany) -这个解决方案听起来不错。但是This howmany只适用于正数组下标。若要删除最后两项或三项,请使用索引本身。

例如,使用splice(-2)删除最后两项。拼接(-3)用于移除最后三个项目。

只要arr.splice(-1)就可以了。

你需要这样做,因为slice不会改变原始数组。

arr = arr.slice(0, -1);

如果你想改变原始数组,你可以使用splice:

arr.splice(-1, 1);

或者流行:

arr.pop();

2019 ECMA5解决方案:

const new_arr = arr.reduce((d, i, idx, l) => idx < l.length - 1 ? [...d, i] : d, [])

非破坏性的,通用的,一行程序,只需要在数组的末尾复制粘贴。