我想知道爲什麼/何時分別在JavaScript或jQuery中使用-1
。由於索引是從0開始(0索引)
if ($.inArray('false', answers) > -1) {
window.console.log('you Lose!');
}
乾杯,
克里斯
我想知道爲什麼/何時分別在JavaScript或jQuery中使用-1
。由於索引是從0開始(0索引)
if ($.inArray('false', answers) > -1) {
window.console.log('you Lose!');
}
乾杯,
克里斯
在這種情況下,返回-1
如果你正在尋找的表達是不你正在尋找在在數組中。
雖然,根據its documentation,$.inArray
返回元素的索引(如果它被發現),指數-1
是不可能的:這是由於索引從0開始爲最低可能值。
因此-1
確實意味着無效的索引位置,即未找到。
所以,在你的代碼段,該試驗> -1
意味着:檢查所有有效的索引是否被發現,或者換句話說,檢查給定值是否在數組中。
這在文件中甚至提到:
因爲JavaScript把0作爲鬆散等於假,如果我們檢查存在(即0 ==假的,但0 ==假的!)我們需要檢查它是否不等於(或大於)-1。
希望這有助於:-)
PS:如果它可以幫助你,如果你能接受這個答案作爲答案會很好:-) –
:
我使用這個代碼段。
var arr = ['a', 'b', 'c'];
alert(arr[0]) // a;
因此,在一個陣列($.inArray
和[].indexOf
)檢查一個元素的索引時,將是錯誤的則返回0的元素不存在:
var arr = ['a', 'b', 'c'];
alert(arr.indexOf('a')); // 0
alert(arr.indexOf('b')); // 1
alert(arr.indexOf('c')); // 1
alert(arr.indexOf('d')); // -1
我會說jQuery在這裏有一個設計缺陷,我寧願認爲jQuery.inArray
會返回布爾值(true/false
)。
也許是因爲數組索引從'0'在JavaScript啓動。 –
您是否閱讀過文檔? – Bergi