删除 NaN 值,javascript
Remove NaN value, javascript
索引 28:
如何删除这个 "NaN" 值。不能使用 isNaN
因为我想要字符串和数字。但不是 NaN
尝试过:
typeof value === 'undefined'
value == null
没有成功。
您可以将 typeof
(检查这是一个数字)与 isNaN
结合使用
注意 typeof NaN
returns "number"
typeof x === "number" && isNaN(x)
另一种解决方案是使用 Number.isNaN,它不会尝试将参数转换为数字。所以只有参数为NaN
才会returntrue
您可以通过使用 Number.isNaN
来专门测试 NaN
,这与普通的 isNaN
有细微的不同:它只有 returns 如果它的参数是一个数字(其值为 NaN)。换句话说,它不会尝试将字符串和其他值强制转换为数字。
演示:
const values = [
12,
NaN,
"hello",
{ foo: "bar" },
NaN,
null,
undefined,
-3.14,
];
const filtered = values.filter(x => !Number.isNaN(x));
console.log(filtered);
Number.isNaN
是 ECMAScript 6 中的新内容。除 Internet Explorer 外,所有浏览器都支持它。如果您需要支持 IE,这里有一个简单的解决方法:
if (!Number.isNaN) {
Number.isNaN = function (x) { return x !== x; };
}
您应该可以使用 Number.isNaN
console.log([1, "foo", NaN, "bar"].filter((x) => !Number.isNaN(x)))
我看过这个比较检查,不确定你是否可以让它为你工作。
var nanValue = NaN;
if(nanValue !== nanValue) // Returns true!
alert('nanValue is NaN');
索引 28:
如何删除这个 "NaN" 值。不能使用 isNaN
因为我想要字符串和数字。但不是 NaN
尝试过:
typeof value === 'undefined'
value == null
没有成功。
您可以将 typeof
(检查这是一个数字)与 isNaN
注意 typeof NaN
returns "number"
typeof x === "number" && isNaN(x)
另一种解决方案是使用 Number.isNaN,它不会尝试将参数转换为数字。所以只有参数为NaN
true
您可以通过使用 Number.isNaN
来专门测试 NaN
,这与普通的 isNaN
有细微的不同:它只有 returns 如果它的参数是一个数字(其值为 NaN)。换句话说,它不会尝试将字符串和其他值强制转换为数字。
演示:
const values = [
12,
NaN,
"hello",
{ foo: "bar" },
NaN,
null,
undefined,
-3.14,
];
const filtered = values.filter(x => !Number.isNaN(x));
console.log(filtered);
Number.isNaN
是 ECMAScript 6 中的新内容。除 Internet Explorer 外,所有浏览器都支持它。如果您需要支持 IE,这里有一个简单的解决方法:
if (!Number.isNaN) {
Number.isNaN = function (x) { return x !== x; };
}
您应该可以使用 Number.isNaN
console.log([1, "foo", NaN, "bar"].filter((x) => !Number.isNaN(x)))
我看过这个比较检查,不确定你是否可以让它为你工作。
var nanValue = NaN;
if(nanValue !== nanValue) // Returns true!
alert('nanValue is NaN');