我遇到一种情况,我正在数组中搜索某些内容,如果找到一个值,我就会执行某些操作。我通过将变量设置为未定义来做到这一点,然后当找到该值时,设置为找到的元素的索引。如果返回的值不为 0,则此方法有效,但如果为 0,则返回 false。我该如何解决这个问题?
var index = undefined;
for(var i=0; i<ARRAY; i++)
{
if(CONDITION)
index = i;
}
if(index)
{
DO SOMETHING
}
所以当索引为零时我的问题发生了,因为这返回了 false。我想这样做的原因是因为我不确定它是否存在于数组中。
最佳答案
为什么不100%明确?毕竟,这才是您真正想要检查的内容:
if (typeof index === 'number')
{
// DO SOMETHING
}
我什至更喜欢检查 >= 0
因为该运算符会为非数字值提供一些奇怪的结果:
Input | >= 0
------------
"1" | true
false | true
null | true
[] | true
"" | true
(有关证据,请参阅 this jsFiddle。)
关于javascript - 如何让0返回true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7715746/