我有以下数组:
const values = ['', 0, 'one', NaN, 1, 'two', 2, null, 'three', undefined, 3, false];
我想filter()
排除除and之外的所有falsy
值。''
0
我知道有一个有用的速记:
return values.filter(Boolean)
但这会删除所有falsy
值,包括 ''
and 0
。
我尝试了以下方法:
return values.filter(value => [NaN, null, undefined, false].indexOf(value) < 0);
它几乎是正确的......但它不会删除NaN
.
const values = ['', 0, 'one', NaN, 1, 'two', 2, null, 'three', undefined, 3, false];
const filteredValues = values.filter(value => [NaN, null, undefined, false].indexOf(value) < 0);
console.log(filteredValues);
有什么方法可以达到与最后一个示例相同的结果,但也可以删除NaN
?