JavaScript 按属性删除对象数组中的元素

2024-05-27

我有一个以下形式的对象数组

[  
   {prop1: value1,
   banks:[{_id:value,property2:value2}]
}]

所以我想要做的是通过搜索“_id”值来删除“banks”属性中的元素,然后从banks数组中删除找到的元素

“_id”属性具有唯一值,因此任何值不会多次出现

我这样做就像

$scope.account.banks.splice($scope.account.banks.indexOf(item),1);

有没有更好的方法来做到这一点?


你可以使用数组.过滤器 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter删除匹配的银行item。它比手动循环干净一点,尽管它仍然有点冗长。我做了一个小测试用例来说明我在说什么。

var accounts = [{
   prop1: 'value1',
   banks:[{_id:0,property2:'sdfbra'},
          {_id:1,property2:'qwedfg'},
          {_id:2,property2:'gaasdf'},
          {_id:3,property2:'asdfaa'}]
}]

var item = {_id:1,property2:'qwedfg'};

accounts[0].banks = accounts[0].banks.filter(function(element){
  return element._id !== item._id;
});

console.log (accounts[0].banks);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 按属性删除对象数组中的元素 的相关文章

随机推荐