我有一个obj和一个对象数组 - 像下面的东西(我没有粘贴它,因为它的巨大)。我试图循环对象数组 - 从数组中删除那些包含值的对象。我写了下面的代码...(使用lodash)JavaScript从数组中删除所有包含值的对象
当在数组上循环时,它随机缺少一些'Foo's - 所以不是所有的Foo对象都被删除...即使它们包含关键Foo。它确实忽略了那个不包含Foo的东西。
obj = {
array : [
{
key1 : 'Foo',
Key2 : 'fi'
},
{
key1 : 'Foo',
Key2 : 'fi',
Key3 : 'blah'
},
{
key1 : 'Fred',
Key2 : 'fi'
},
{
key1 : 'Foo',
Key2 : 'fi'
}
... etc....
]
}
var items = obj.array
_.forEach(items, function(n, index) {
var isFoo = _.includes(n, 'Foo');
console.log(isFoo);
if (isFoo) {
items.splice(index, 1);
}
});
好像你想要[Array.prototype.filter]( https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) – Grundy