我正在尝试使用以下方法从数组中过滤出一个对象:
foo = [{foo: 'bar'}, {baz: 'bar'}];
bar = foo.filter(function(i) {
return i !== {foo: 'bar'}
})
当我之后记录 bar
时,我得到了完整的数组。
下面的代码
foo.filter(function(i) {
console.log(i === {foo: 'bar'});
console.log(i);
console.log({foo: 'bar'});
return i !== {foo: 'bar'}
})
返回:
false
{ foo: 'bar' }
{ foo: 'bar' }
false
{ baz: 'bar' }
{ foo: 'bar' }
[ { foo: 'bar' }, { baz: 'bar' } ]
我在这里错过了什么??
最佳答案
这会起作用:
const foo = [{foo: 'bar'}, {baz: 'bar'}];
const bar = foo.filter(function(i) {
return i.foo !== 'bar'
});
console.log(bar);
您应该比较属性“foo”本身,而不是比较两个对象
关于javascript - 无法从数组中过滤对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57600147/