在 JavaScript 中检查数组是否包含具有特定属性值的对象?

新手上路,请多包涵

如果我有类似的东西

[Object(id:03235252, name:"streetAddress"), Object(id:32624666, name:"zipCode")...]

如何从该数组中 删除 名称设置为“zipCode”的对象?

原文由 antonpug 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 450
2 个回答

如果你需要修改现有的数组,你应该使用 splice()

 for (var i = array.length - 1; i > -1; i--) {
    if (array[i].name === "zipCode")
        array.splice(i, 1);
}

请注意,我正在反向循环。这是为了处理以下事实:当您执行 .splice(i, 1) 时,数组将被重新索引。

如果我们做一个前向循环,我们还需要调整 i 每当我们做 .splice() 以避免跳过索引。

原文由 I Hate Lazy 发布,翻译遵循 CC BY-SA 3.0 许可协议

arr = arr.filter(function (item) {
  return (item.name !== 'zipCode');
});

原文由 J. K. 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题