位置:首頁 > 軟件操作教程 > 編程開發(fā) > JavaScript > 問題詳情

JavaScript 循環(huán)結(jié)構(gòu) for/in 語句

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-24

■知識(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適合枚舉不確定長度的對(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 />");

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部