如何检查数组中是否存在 NaN 关键字?
How to check existence of NaN keyword in an array?
我有以下数组
var arr = [7, 1, "abc", undefined, NaN];
但是我如何检查 arr 中的值是否为 NaN?
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || arr[i] === NaN) {
// do something
}
}
有什么想法吗?我尝试了 isNaN(arr[i])
功能,但它也不起作用。
对我来说这有用吗??
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || Number.isNaN(arr[i]) ) {
console.log("NaN");
}
}
首先将值转换为String。然后检查 value == 'NaN'
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || (arr[i] != undefined && typeof(arr[i]) == "number" && arr[i].toString() === 'NaN')) {
// do something
}
}
您可以检查类型 (typeof NaN === 'number'
) 并使用 isNaN
获得 NaN
值。
var arr = [7, 1, "abc", undefined, NaN], i;
for (i = 0; i < arr.length; i++){
if (typeof arr[i] === 'number' && isNaN(arr[i])) {
console.log('Element ' + i + ' is NaN');
}
}
或check if the value is unequal to itself.
var arr = [7, 1, "abc", undefined, NaN], i;
for (i = 0; i < arr.length; i++){
if (arr[i] !== arr[i]) {
console.log('Element ' + i + ' is NaN');
}
}
在 ECMAScript 6 中,您可以使用 Number.isNaN 函数:
var arr = [7, 1, "abc", undefined, NaN];
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || Number.isNaN(arr[i])) {
console.log("NaN found at place " + i);
}
}
如果您需要在 ECMAScript 5 中工作,那么 isNaN 函数的问题在于它正在检查该值是否能够被强制转换为数字。相反,您可以使用 NaN 值的奇数 属性 - 它不等于自身:
var arr = [7, 1, "abc", undefined, NaN];
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || arr[i] != arr[i]) {
console.log("NaN found at place " + i);
}
}
isNan 适合我:
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (isNaN(arr[i])) {
console.log("Not a number at index " + i + ": "+arr[i]);
}
}
打印(在 node.js 中):
Not a number at index 2: abc
Not a number at index 3: undefined
Not a number at index 4: NaN
我有以下数组
var arr = [7, 1, "abc", undefined, NaN];
但是我如何检查 arr 中的值是否为 NaN?
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || arr[i] === NaN) {
// do something
}
}
有什么想法吗?我尝试了 isNaN(arr[i])
功能,但它也不起作用。
对我来说这有用吗??
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || Number.isNaN(arr[i]) ) {
console.log("NaN");
}
}
首先将值转换为String。然后检查 value == 'NaN'
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || (arr[i] != undefined && typeof(arr[i]) == "number" && arr[i].toString() === 'NaN')) {
// do something
}
}
您可以检查类型 (typeof NaN === 'number'
) 并使用 isNaN
获得 NaN
值。
var arr = [7, 1, "abc", undefined, NaN], i;
for (i = 0; i < arr.length; i++){
if (typeof arr[i] === 'number' && isNaN(arr[i])) {
console.log('Element ' + i + ' is NaN');
}
}
或check if the value is unequal to itself.
var arr = [7, 1, "abc", undefined, NaN], i;
for (i = 0; i < arr.length; i++){
if (arr[i] !== arr[i]) {
console.log('Element ' + i + ' is NaN');
}
}
在 ECMAScript 6 中,您可以使用 Number.isNaN 函数:
var arr = [7, 1, "abc", undefined, NaN];
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || Number.isNaN(arr[i])) {
console.log("NaN found at place " + i);
}
}
如果您需要在 ECMAScript 5 中工作,那么 isNaN 函数的问题在于它正在检查该值是否能够被强制转换为数字。相反,您可以使用 NaN 值的奇数 属性 - 它不等于自身:
var arr = [7, 1, "abc", undefined, NaN];
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (arr[i] === false || arr[i] != arr[i]) {
console.log("NaN found at place " + i);
}
}
isNan 适合我:
for (i=0; i < arr.length; i++){
// check if array value is false or NaN
if (isNaN(arr[i])) {
console.log("Not a number at index " + i + ": "+arr[i]);
}
}
打印(在 node.js 中):
Not a number at index 2: abc
Not a number at index 3: undefined
Not a number at index 4: NaN