在Javascript中删除整个对象

时间:2014-11-12 11:40:56

标签: javascript jquery

arr = [
 {
   id:1
 },
 {
   id:2
 }
]

这是一个示例对象结构。我想删除此数组中的第一个对象。

 delete arr[0];

结果结构

[
{
  undefined * 1
},
{
  id:2
}
]

我搜索了很多,发现删除整个对象会导致悬空指针问题。但我希望结果数组在删除后只有一个对象。有没有其他方法来实现这一目标?

修改    如果对象既不是第一个也不是最后一个怎么办?

3 个答案:

答案 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]

参考文献: