js里的for in循環(huán)定義如下:
for(var variable in obj) { ... }
obj可以是一個(gè)普通的js對(duì)象或者一個(gè)數(shù)組。如果obj是js對(duì)象,那么variable在遍歷中得到的是對(duì)象的屬性的名字,而不是屬性對(duì)應(yīng)的值。如果obj是數(shù)組,那么variable在遍歷中得到的是數(shù)組的下標(biāo)。
遍歷對(duì)象實(shí)驗(yàn):
var v = {}; v.field1 = "a"; v.field2 = "b"; for(var v in v) { console.log(v); }
控制臺(tái)下輸出:
field1
field2
遍歷數(shù)組實(shí)驗(yàn):
var mycars = new Array() mycars[0] = "Saab" mycars[1] = "Volvo" mycars[2] = "BMW" for (var x in mycars){ console.log(x); }
控制臺(tái)輸出:
0
1
2
拿java的foreach循環(huán)來(lái)做對(duì)比,有兩大差別。首先java的foreach循環(huán)不會(huì)去枚舉一個(gè)java對(duì)象的屬性。其次,java的foreach循環(huán)枚舉一個(gè)數(shù)組或者任何實(shí)現(xiàn)了Iterable接口的對(duì)象的時(shí)候,for(Object o : list), 對(duì)象o得到的是list一個(gè)元素,而非在列表中的下標(biāo)。
java的遍歷代碼就不貼出來(lái)了。經(jīng)常寫(xiě)后臺(tái)代碼,foreach循環(huán)很熟悉。寫(xiě)前臺(tái)js代碼的時(shí)候,難免會(huì)套用java的語(yǔ)法,所以第一次用js的for in循環(huán)的時(shí)候犯錯(cuò)了。這次總結(jié)清楚,以后就不會(huì)犯錯(cuò)誤了。
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
更多js的for in循環(huán)和java里foreach循環(huán)的區(qū)別分析相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com