如果任何键为假,则过滤对象数组

jan*_*ski 0 javascript arrays filter

我怎样才能像那样过滤数组

[
    { foo: NaN, test: 'String' },
    { foo: 2, test: '' },
    { foo: 3, test: 'Something' },
]
Run Code Online (Sandbox Code Playgroud)

并返回一个没有对象的新数组,其中键的值是假的?在这种情况下,应该只返回带有第三个对象的数组。

[
    { foo: 3, test: 'Something' },
]
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 5

只需过滤并检查对象的所有值。

var array = [{ foo: NaN, test: 'String' }, { foo: 2, test: '' }, { foo: 3, test: 'Something' }],
    result = array.filter(o => Object.values(o).every(Boolean));

console.log(result);
Run Code Online (Sandbox Code Playgroud)