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

2022-08-29 23:27:44

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

如果对象在数组中,它将返回 0,但在 Javascript 中 0 是 false。因此,以下内容将输出:“不在数组中”

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。

所以我的问题是,为什么这样做?我真的很不喜欢这个。但必须有一个很好的理由这样做。


答案 1

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

因此,要检查某个项目是否在数组中,请使用:

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

答案 2

$.inArray 返回元素的索引(如果找到),则返回 -1(如果不是 -- 不是布尔值)。所以正确的是

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