arr = [
{
id:1
},
{
id:2
}
]
这是一个示例对象结构。我想删除此数组中的第一个对象。
delete arr[0];
结果结构
[
{
undefined * 1
},
{
id:2
}
]
我搜索了很多,发现删除整个对象会导致悬空指针问题。但我希望结果数组在删除后只有一个对象。有没有其他方法来实现这一目标?
修改 如果对象既不是第一个也不是最后一个怎么办?
答案 0 :(得分:2)
您需要创建一个更短的数组。要删除第一个元素,只需切片数组:
arr = arr.slice(1);
当丢弃前一个数组时,第一个元素也将被丢弃。
答案 1 :(得分:1)
从数组中删除任何的唯一方法是调整大小
arr = arr.slice(1)
答案 2 :(得分:1)
作为Array.prototype.slice()
的替代方案,您可以使用array.prototype.shift()
,它只删除数组的第一个元素:
arr = [
{
id:1
},
{
id:2
}
];
console.log(arr); // [Object, Object]
arr.shift();
console.log(arr); // [Object]
参考文献: