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

ant*_*pug 7 javascript arrays object

如果我有类似的东西

[Object(id:03235252, name:"streetAddress"), Object(id:32624666, name:"zipCode")...]
Run Code Online (Sandbox Code Playgroud)

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

I H*_*azy 12

如果需要修改现有阵列,则应使用splice().

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

请注意,我正在反向循环.这是为了处理这样一个事实:当你执行a时.splice(i, 1),数组将被重新编制索引.

如果我们进行了前向循环,我们还需要在i每次执行a时进行调整.splice(),以避免跳过索引.


J. *_* K. 8

arr = arr.filter(function (item) {
  return (item.name !== 'zipCode');
});
Run Code Online (Sandbox Code Playgroud)

  • 可能值得一提的是[它在IE 8中不起作用](http://kangax.github.com/es5-compat-table/)所以你可能需要[shim](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/filter#Compatibility)它. (3认同)