在 JavaScript 数组中查找 NaN 的索引
[1, 2, 3].indexOf(3) => 2
[1, 2, NaN].indexOf(NaN) => -1
[1, NaN, 3].indexOf(NaN) => -1
[1, 2, 3].indexOf(3) => 2
[1, 2, NaN].indexOf(NaN) => -1
[1, NaN, 3].indexOf(NaN) => -1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 Array.prototype.findIndex 查找数组中 NaN 索引的方法
您可以使用 Array.prototype.includes 检查数组中是否存在 NaN。但它不会给你索引!它将返回一个布尔值。如果存在 NaN,则返回 true,否则返回 false
不要使用
Array.prototype.indexOf
您不能使用Array.Prototype.indexOf 查找 NaN 位于数组内。因为 indexOf 使用 严格相等运算符 内部和
NaN === NaN
计算结果为false
。因此,indexOf 将无法检测数组内的 NaN使用
Number.isNaN
而不是isNaN
:这里我选择数字。 isNaN 超过isNaN。因为
isNaN
将string Literal
视为NaN
。另一方面,Number.isNaN
仅将NaN< /code> 文字为
NaN
或者,编写您自己的逻辑:
您可以编写自己的逻辑来查找 NaN。正如您所知, NaN 是 JavaScript 中唯一
不等于自身
的值。这就是我建议不要使用 Array.prototype.indexOf 的原因。我们可以利用这个思想来编写我们自己的 isNaN 函数。
You can use Array.prototype.findIndex method to find out the index of NaN in an array
You can use Array.prototype.includes to check if NaN is present in an array or not. It won't give you the index though !! It will return a boolean value. If NaN is present true will be returned, otherwise false will be returned
Don't use
Array.prototype.indexOf
You can not use Array.Prototype.indexOf to find index of NaN inside an array.Because indexOf uses strict-equality-operator internally and
NaN === NaN
evaluates tofalse
.So indexOf won't be able to detect NaN inside an arrayUse
Number.isNaN
instead ofisNaN
:Here i choose Number.isNaN over isNaN. Because
isNaN
treatsstring literal
asNaN
.On the other handNumber.isNaN
treats onlyNaN
literal asNaN
Or, Write your own logic :
You can write your own logic to find NaN.As you already know that, NaN is the only value in javascript which is
not equal to itself
. That's the reason i suggested not to useArray.prototype.indexOf
.We can use this idea to write our own isNaN function.
NaN 被定义为不等于任何东西(甚至不等于它本身)。请参阅此处:http://www.w3schools.com/jsref/jsref_isNaN.asp
NaN is defined not to be equal to anything (not even itself). See here: http://www.w3schools.com/jsref/jsref_isNaN.asp
您必须查看每个项目才能返回一个数组
为 NaN 值的索引 -
findNaNs([1, NaN, 3, 4, 'cat'/3])
// 或查找第一个 -
You have to look at each item to return an array
of the indexes that are NaN values-
findNaNs([1, NaN, 3, 4, 'cat'/3])
//or to find the first one-