[{
"id": "YZ-WDW-8",
"number": "8",
"pl": 9.8
}, {
"id": "YZ-WDW-9",
"number": "9",
"pl": 9.8
}, {
"id": "YZ-WDW-BIG",
"number": "大",
"pl": 1.97
}]
如图 ,上面的数据,我用filter函数过滤,为什么过滤失败?
函数是这样写的
arr.filter(function(item,index){
return Number(item.id.split('-')[2])!==NaN;
});
但是没有把最后一项过滤掉,为什么呢?
NaN
(not a number),是一个特殊的数值。之所以称它为「非数值」,是因为它不能参与算数运算,任何涉及NaN
的操作都返回NaN
。并且NaN
与任何值都不相等(包括自身)。例如:所以在判断
NaN
时,不能使用===
,只能使用isNaN()
方法,你的代码应该改成下面这样。更多内容可参考《JavaScript 闯关记》之变量和数据类型。