javascript - jQuery.inArray(),如何正确使用?

标签 javascript jquery

我第一次使用 jQuery.inArray(),它的行为有点奇怪。

如果对象在数组中,它将返回 0,但 0 在 Javascript 中为 false。所以下面会输出:"is NOT in array"

var myarray = [];
myarray.push("test");

if(jQuery.inArray("test", myarray)) {
    console.log("is in array");
} else {
    console.log("is NOT in array");
}

我将不得不将 if 语句更改为:

if(jQuery.inArray("test", myarray)==0)

但这会使代码不可读。特别是对于不了解此功能的人。他们会期望 jQuery.inArray("test", myarray) 当 "test"在数组中时返回 true。

所以我的问题是,为什么要这样做?我真的不喜欢这个。但这样做一定有充分的理由。

最佳答案

inArray 返回数组中元素的索引,而不是指示该项目是否存在于数组中的 bool 值。如果未找到该元素,则返回 -1

所以,要检查一个项目是否在数组中,请使用:

if(jQuery.inArray("test", myarray) !== -1)

关于javascript - jQuery.inArray(),如何正确使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18867599/

相关文章:

javascript - 当我运行此 javascript 解析云代码时,只有部分解析对象更新(始终为 9,但不再更新)

javascript - 能否检测是否支持CSS滤镜效果?

javascript - React Component 在内部事件上更改 Prop

javascript - 脚本不工作(但在其他网站上工作正常)

jquery - Google Analytics(分析)被阻止在新窗口中打开

javascript - 检查数组中是否包含与新数组具有相同值的数组

javascript - 动态 InfoWindows 和 Google Fusion Maps 中的动态模板有什么区别?

jquery - 在容器内具体化 CSS 选项卡指示器行为

javascript - 更改 Fabric JS 中的渐变颜色停止点

javascript - 如何解决对象键大小写变化?