3 回答

TA貢獻1780條經(jīng)驗 獲得超4個贊
它引用索引或鍵,而不是值。 0并且1是該陣列的有效指標(biāo)。還有一些有效的鍵,包括"length"和"toSource"。嘗試2 in x。這將是錯誤的(因為JavaScript數(shù)組的索引為0)。

TA貢獻2039條經(jīng)驗 獲得超8個贊
該in運營商不這樣做,你在想它做什么。該in運營商的回報true,如果指定的操作數(shù)是對象的屬性。對于數(shù)組,它返回true操作數(shù)是否為有效索引(將數(shù)組視為特殊情況下的對象,在該對象中將屬性簡單地命名為0、1、2,...是有意義的)
例如,嘗試以下操作:
javascript:var x=[1,4,6]; alert(2 in x);
它還將返回true,因為“ 2”是數(shù)組的有效索引。同樣,“ 0”是數(shù)組的索引,因此也返回true。

TA貢獻1860條經(jīng)驗 獲得超9個贊
除IE外,現(xiàn)代瀏覽器都支持幾種可以在數(shù)組中查找值的方法。
indexOf和lastIndexOf返回其參數(shù)在數(shù)組中完全匹配的第一個(或最后一個)索引;如果找不到匹配的元素,則返回-1。
if(A.indexOf(0)!= -1){
// the array contains an element with the value 0.
}
您可以在IE和舊版瀏覽器中添加一種或兩種方法,
if(![].indexOf){
Array.prototype.indexOf= function(what, i){
i= i || 0;
var L= this.length;
while(i< L){
if(this[i]=== what) return i;
++i;
}
return -1;
}
Array.prototype.lastIndexOf= function(what, i){
var L= this.length;
i= i || L-1;
if(isNaN(i) || i>= L) i= L-1;
else if(i< 0) i += L;
while(i> -1){
if(this[i]=== what) return i;
--i;
}
return -1;
}
}
添加回答
舉報