第一次合作,jQuery.inArray()行为有点奇怪。
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。
所以我的问题是,为什么要这样做呢?我真的不喜欢这个。但是一定有充分的理由这样做。
inArray返回数组中元素的索引,而不是指示数组中是否存在该项的布尔值。如果找不到该元素,-1将返回。
inArray
-1
因此,要检查项目是否在数组中,请使用:
if(jQuery.inArray("test", myarray) !== -1)