我正在 Codewars 上做基本的 Javascript Kata 之一,挑战是过滤数组中的所有项目(如果它们不是 Number
基元)。
我写了以下内容:
const list = [ '123', 123, 2, 'aasf', '1', 1 ];
function filter_list(l) {
const filteredArray = l.filter((item) => {
if ( Number(item) !== NaN ) return item;
});
return filteredArray;
}
console.log(filter_list(list));
我是编程新手,无法理解为什么这不起作用。您的解决方案是什么?
非常感谢
最佳答案
NaN
is never equals to anything includingNaN
itself ! [Ref]
使用isNaN
来测试该值。 isNaN
函数确定值是否为 NaN
。
const list = ['123', 123, 2, 'aasf', '1', 1];
function filter_list(l) {
const filteredArray = l.filter((item) => {
return isNaN(item);
});
//could be written as l.filter(isNaN);
return filteredArray;
}
console.log(filter_list(list));
关于javascript - 与 NaN 的比较没有按我预期的方式工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43580225/