繁体   English   中英

带有函数$ .inArray的jQuery 1.9.1中的错误

[英]Bug in jQuery 1.9.1 with function $.inArray

我最近得出的结论是$ .inArray无效。 我到处研究,看到类似jQuery的线程:为什么jQuery.inArray()不起作用?

但我仍然认为它是一个jQuery Bug。 因为我有一个我在$ .inArray中使用的ARRAY

这是console.log

var testArray值是:

["1", "15"]

这显然是JavaScript中的一个数组。

我正在使用命令

if($.inArray(14, testArray))
  alert("14 should not be in array. Isn't it?");

我也试过以下,但同样的问题:

if(jQuery.inArray('14', testArray))
  alert("14 should not be in array. Isn't it?");

jQuery的$.inArray方法返回找到值的索引,如果$.inArray返回-1 只是碰巧-1是真实的(通过运行!!-1将其转换为布尔值),这将评估为真。 为了更可靠地使用此方法,请比较其返回值,而不是仅将其用作条件:

if ( $.inArray(14, ["1", "15"]) > -1 ) {
    alert( "Value has been found" );
}

这在在线文档中非常清楚地说明

如果您在使用此方法时正在寻找更简单的约定,则可以反转操作数的位并将-1转换为0并将0转换为-1

if ( ~$.inArray(14, ["1", "15"]) )

如果找不到项,则$.inArray返回-1 所以jQuery isArray确实可以正常工作。 这就是你运行测试代码时的原因:

if ($.inArray(14, testArray)) {
    alert("14 should not be in array. Isn't it?");
}

你看到警报了。 当然,因为-1不是假的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM