一尘不染

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

javascript

第一次合作,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)

但这使代码不可读。特别是对于不知道此功能的人。他们期望当“ test”在数组中时,jQuery.inArray(“ test”,myarray)为true。

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


阅读 269

收藏
2020-05-01

共1个答案

一尘不染

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

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

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