如何检查数组JavaScript中是否存在NaN关键字
我们有一个包含真值和假值的元素数组。我们的工作是编写一个函数,该函数返回一个数组,该数组的索引为原始数组中的NaN。
NaN!==NaN
NaN的数据类型实际上是数字。尽管NaN是一个伪造的值,但它具有其他数据类型或变量没有的特殊属性。就是NaN===NaN表达式会产生false。而且只有在NaN的情况下,它才是错误的。
因此,我们可以充分利用此行为,并选择NaN值指数。为此的代码将是-
const arr = [7, 1, "123abc", undefined, NaN, 78, NaN, null, "aes", NaN,
'', null, NaN];
const pickNaN = (arr) => {
return arr.reduce((acc, val, ind) => {
if(val !== val){
acc.push(ind);
};
return acc;
}, []);
};
console.log(pickNaN(arr));使用isNaN()/Number.isNaN()
该isNaN()方法基于这样的事实提供的值是否是NaN或可以强制转换为NaN返回true或false。而Number.isNaN()函数仅在提供的值实际上是NaN时才返回true。
因此,Number.isNaN()是检查NaNover的可靠方法isNaN()。代码输出的差异如下所示。
示例
const arr = [7, 1, "abc", undefined, NaN, 78, NaN, null, "aes", NaN, '',
null, NaN];
const pickNaN = (arr) => {
return arr.reduce((acc, val, ind) => {
if(Number.isNaN(val)){
acc.reliableWay.push(ind);
};
if(isNaN(val)){
acc.unreliableWay.push(ind);
}
return acc;
}, {
reliableWay: [],
unreliableWay: []
});
};
console.log(pickNaN(arr));这段代码准备了两个数组,一个使用Number.isNaN(),另一个使用isNaN()。
输出结果
输出将是-
{
reliableWay: [ 4, 6, 9, 12 ],
unreliableWay: [ 2, 3, 4, 6, 8, 9, 12]
}我们可以清楚地看到如何isNaN()计算许多非NaN值作为NaN。这就是为什么Number.isNaN()是一种更可靠的方法。
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短