var arr = [1,2,3,5,6];
删除第一个元素
我想删除数组的第一个元素,使它变成:
var arr = [2,3,5,6];
删除第二个元素
为了扩展这个问题,如果我想删除数组的第二个元素,使它变成:
var arr = [1,3,5,6];
var arr = [1,2,3,5,6];
删除第一个元素
我想删除数组的第一个元素,使它变成:
var arr = [2,3,5,6];
删除第二个元素
为了扩展这个问题,如果我想删除数组的第二个元素,使它变成:
var arr = [1,3,5,6];
当前回答
arr.slice(begin[,end])
是非破坏性的,拼接和移位会修改你的原始数组
其他回答
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);
你也可以用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);
不改变原始数组的Typescript解决方案
function removeElementAtIndex<T>(input: T[], index: number) {
return input.slice(0, index).concat(input.slice(index + 1));
}