如何从对象数组中删除对象?

时间:2016-12-28 16:44:54

标签: javascript angularjs arrays

我的obejct数组就是这个

var items = {};

$http({
    url: 'http://service.com/api/notifications',
    method: 'GET',
    params: {},
    headers: {}
}).then(function (response) {
    for (var i = 0; i < response.data.length; i++) {
        item[response.data[i].id] = response.data[i];
    }
});

结果类似于:

{
  120: {
    "id": 120,
    "name": "John Doe",
    "rol": "admin"
  },
  300: {
    "id": 120,
    "name": "Saya",
    "rol": "moderator"
  }
}

我这样做是为了在我打印时没有重复的项目,因为该服务会不时被重新咨询。

我需要从这个数组中删除一个项目。

1 个答案:

答案 0 :(得分:4)

  

我需要从这个数组中删除一个项目。

它不是一个数组,它是一个对象。您可以使用delete运算符从对象中删除属性:

delete theObject[120];
// or
delete theObject["120"];

...将从中删除"120"属性,释放该对象。

它几乎不重要,但只要知道在大多数现代JavaScript引擎上从对象中删除属性会影响在该对象上查找属性的后续性能,因为它们通常以优化查找开始,但后来又回到“字典模式“当您删除(而不是添加)属性时。 More in this answer。但是,它几乎永远不会重要。

相关问题