javascript - 如何让0返回true?

标签 javascript

我遇到一种情况,我正在数组中搜索某些内容,如果找到一个值,我就会执行某些操作。我通过将变量设置为未定义来做到这一点,然后当找到该值时,设置为找到的元素的索引。如果返回的值不为 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/

相关文章:

javascript - 将 86.678、1.12517、0.61457 等字符串转换为数字并递增/递减最后 3 位数字

javascript - 如何在不重写整个应用程序的情况下对结果进行分块(延迟加载?)(Laravel + jQuery,SPA 风格)

javascript - 如何延迟加载外部 JS 文件(Google Analytics)?

javascript - 如何在:run after tests finish execution之后触发cypress

javascript - 对于具有 ContentEditable ="true"的元素,在溢出时向左滚动文本

javascript - IE8 无法读取数据 URL 图片

javascript - 如何以编程方式控制 slick.js 轮播?

javascript - 如何从 addEventListener 返回值

javascript - 如何忽略 URL 的部分内容?

javascript - 当另一个函数完成时暂停函数