【问题标题】:Deleting an entire object in Javascript [duplicate]在Javascript中删除整个对象[重复]
【发布时间】:2014-11-12 11:40:55
【问题描述】:
arr = [
 {
   id:1
 },
 {
   id:2
 }
]

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

 delete arr[0];

结果结构是

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

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

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

【问题讨论】:

  • arr.splice(x, 1) 将是通用解决方案。
  • 拒绝投票的原因。因为重复?哪个是副本

标签: javascript jquery


【解决方案1】:

您需要创建一个较短的数组。要删除第一个元素,只需对数组进行切片:

arr = arr.slice(1);

当前一个数组被丢弃时,第一个元素也将被丢弃。

【讨论】:

    【解决方案2】:

    作为Array.prototype.slice() 的替代方案,您可以使用array.prototype.shift(),它只是删除数组的第一个元素:

    arr = [
     {
       id:1
     },
     {
       id:2
     }
    ];
    
    console.log(arr); // [Object, Object]
    
    arr.shift();
    
    console.log(arr); // [Object]

    参考资料:

    【讨论】:

      【解决方案3】:

      从数组中删除任何东西的唯一方法是调整它的大小

      arr = arr.slice(1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-14
        • 2018-06-12
        • 2015-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多