【问题标题】:Remove an object from an array从数组中移除一个对象
【发布时间】:2014-12-22 06:49:27
【问题描述】:

从以下给定对象中删除名为“itemType”的属性的方法是什么 ?

 {
    "id": 19,
    "cost": 10,
    "items": 10,
    "numbers": 10,
    "status": false,
    "hours": 10,
    "itemType": {
        "id": 16,
        "name": "PC 350",
        "description": "PC 350"        
    },
    "typeid": 12
}

这样最终的数组应该是这样的

 {
    "id": 19,
    "cost": 10,
    "items": 10,
    "numbers": 10,
    "status": false,
    "hours": 10,         
    "typeid": 12
}

【问题讨论】:

  • 这里没有数组,也没有对象itemtype。然而,有一个对象具有属性 itemtype
  • 感谢更正。我已经编辑了问题

标签: javascript arrays arrayobject


【解决方案1】:

这是object 不是array。你可以像这样使用delete

   var obj = {
        "id": 19,
        "cost": 10,
        "items": 10,
        "numbers": 10,
        "status": false,
        "hours": 10,
        "itemType": {
            "id": 16,
            "name": "PC 350",
            "description": "PC 350"        
        },
        "typeid": 12
    }

    delete obj.itemType;

【讨论】:

    【解决方案2】:

    无论是一个对象,你想从中删除一个属性,还是你有一个数组,想删除一个值,删除的方式是-

    delete obj.itemType //object.
    delete array[3] //delete 4th item from the array.
    

    注意 - 您提供的结构不是数组,而是对象。

    【讨论】:

    • 那么最好的解决方案是什么@charlietfl?
    • 拼接()。使用 delete 不会删除该索引,因此长度不会改变。试试这个var a=[1,2,3]; delete a[1] console.log(a.length);
    • 是的,最好使用拼接方法。
    • 请不使用删除会使索引保持原样,访问它会使您未定义。 splice 将删除所需的元素并自动移动值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多