簡體   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