JavaScript 循環(huán)結(jié)構(gòu) for/in 語句
■知識(shí)點(diǎn)
for/in語句是for語句的一種特殊形式。其語法格式如下:
for ( [var] variable in <object | array> )
statement
variable表示一個(gè)變量,可以在其前面附加var語句,用來直接聲明變量名。in后面是一個(gè)對(duì)象或數(shù)組類型的表達(dá)式。在遍歷對(duì)象或數(shù)組過程中,把獲取的每一個(gè)值賦值給variable。
然后,執(zhí)行statement語句,其中可以訪問variable來讀取每個(gè)對(duì)象屬性或數(shù)組元素的值。執(zhí)行完畢,返回繼續(xù)枚舉下一個(gè)元素,周而復(fù)始,直到所有元素都被枚舉為止。
注意:
■實(shí)例設(shè)計(jì)
【示例1】下面的示例使用for/in語句遍歷數(shù)組,并枚舉每個(gè)元素及其值,效果如圖所示。
var a = [1,true, "0", [false], {}]; //聲明并初始化數(shù)組變量
for(var n in a){ //遍歷數(shù)組
document.write( "a[" + n + "] = " + a[n] + "<br>");//顯示每個(gè)元素的值
}
【示例2】在下面的示例中,定義一個(gè)對(duì)象0,設(shè)置3個(gè)屬性,然后使用for/iii迭代對(duì)象屬性,把每個(gè)屬性值寄存到一個(gè)數(shù)組中。
var o ={ x : 1, y : true, z : "true"}, //定義包含3個(gè)屬性的對(duì)象
a = [], //臨時(shí)寄存數(shù)組
n = 0; //定義循環(huán)變量,初始化為0
for(a[n ++ ] in o); //遍歷對(duì)象o,然后把所有屬性都賦值到數(shù)組中
其中,”for(a[Tl++]in0);"語句實(shí)際上是一個(gè)空的循環(huán)結(jié)構(gòu),分號(hào)為一個(gè)空語句。
【示例3】for/in適合枚舉不確定長(zhǎng)度的對(duì)象。在下面的示例中,使用for/iii讀取客戶端document 對(duì)象的所有可讀屬性。
for(var i = 0 in document){
document.write ("document. "+i+"="+document[i] +"<br />");
}
【示例4】for/in能夠枚舉可枚舉的屬性,包括原生屬性和繼承屬性。
Array, prototypes = "x"; //自定義數(shù)組對(duì)象的繼承厲性
var a = [1,2,3]; //定義數(shù)組對(duì)象,并賦值
a.y = "y"; //定義數(shù)組對(duì)象的額外屬性
for (var i in a) { //遍歷數(shù)組對(duì)象a
document. write ( i+": " + a[i] + "<br />");
}
在上面的示例中,共獲取5個(gè)元素,其中包括3個(gè)原生元素,1個(gè)是繼承的屬性x和1個(gè)額外的屬性y。
如果僅想獲取數(shù)組a的元素值,只能使用for循環(huán)結(jié)構(gòu)。
for(var i = 0; i <a.length ; i ++ )
document.write( i + ":" + a[i] + "<br />");
點(diǎn)擊加載更多評(píng)論>>