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];
当前回答
shift方法从数组中删除第一个元素,并返回它。它修改原始数组。
var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]
其他回答
不改变原始数组的Typescript解决方案
function removeElementAtIndex<T>(input: T[], index: number) {
return input.slice(0, index).concat(input.slice(index + 1));
}
Shift()非常适合您的情况。Shift()从数组中删除第一个元素并返回该元素。此方法更改数组的长度。
array = [1, 2, 3, 4, 5];
array.shift(); // 1
array // [2, 3, 4, 5]
其他答案很好,我只是想添加一个ES6数组函数的替代解决方案:过滤器。
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]
移除库存中没有的物品
const inventory = [
{name: 'Apple', qty: 2},
{name: 'Banana', qty: 0},
{name: 'Orange', qty: 5}
];
const res = inventory.find( product => product.qty > 0);
写了一篇关于在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这个名称不是直观的,如果在整个应用程序中都有这个调用,它只会使代码更难阅读。
shift方法从数组中删除第一个元素,并返回它。它修改原始数组。
var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]