js數(shù)組遍歷總結(jié)

js中的數(shù)組遍歷是項(xiàng)目中經(jīng)常用到的啸罢,在這里將幾種方法做個對比。
for循環(huán):使用評率最高,也是最基本的一種遍歷方式联四。
let arr = ['a','b','c','d','e'];
for (let i = 0, len = arr.length; i < len; i++) {
console.log(i); // 0 1 2 3 4
console.log(arr[i]); //a b c d e
}
forEach()循環(huán):forEach中傳入要執(zhí)行的回調(diào)函數(shù),函數(shù)有三個參數(shù)撑教。第一個參數(shù)為數(shù)組元素(必選)朝墩,第二個參數(shù)為數(shù)組元素索引值(可選),第三個參數(shù)為數(shù)組本身(可選)
let arr = ['a','b','c','d','e'];
arr.forEach((item,index,arr)=> {
console.log(item); // a b c d e
console.log(index); // 0 1 2 3 4
console.log(arr); // ['a','b','c','d','e']
})
map循環(huán):map()中傳入要執(zhí)行的回調(diào)函數(shù)伟姐,函數(shù)有三個參數(shù)收苏。第一個參數(shù)為數(shù)組元素(必選),第二個參數(shù)為數(shù)組元素索引值(可選)愤兵,第三個參數(shù)為數(shù)組本身(可選)
var arr = [
{name:'a',age:'18'},
{name:'b',age:'19'},
{name:'c',age:'20'}
];
arr.map(function(item,index) {
if(item.name == 'b') {
console.log(index) // 1
}
})
for...in循環(huán):for...in循環(huán)可用于循環(huán)對象和數(shù)組,推薦用于循環(huán)對象,可以用來遍歷json
let obj = {
name: '王大錘',
age: '18',
weight: '70kg'
}
for(var key in obj) {
console.log(key); // name age weight
console.log(obj[key]); // 王大錘 18 70kg
}
let arr = ['a','b','c','d','e'];
for(var key in arr) {
console.log(key); // 0 1 2 3 4 返回數(shù)組索引
console.log(arr[key]) // a b c d e
}
for...of循環(huán):可循環(huán)數(shù)組和對象鹿霸,推薦用于遍歷數(shù)組。
for...of提供了三個新方法:
key()是對鍵名的遍歷秆乳;
value()是對鍵值的遍歷懦鼠;
entries()是對鍵值對的遍歷;
let arr = ['科大訊飛', '政法BG', '前端開發(fā)'];
for (let item of arr) {
console.log(item); // 科大訊飛 政法BG 前端開發(fā)
}
// 輸出數(shù)組索引
for (let item of arr.keys()) {
console.log(item); // 0 1 2
}
// 輸出內(nèi)容和索引
for (let [item, val] of arr.entries()) {
console.log(item + ':' + val); // 0:科大訊飛 1:政法BG 2:前端開發(fā)
}
總結(jié):forEach矫夷、map葛闷、filter、reduce双藕、every淑趾、some 都會有 break 和 continue 不生效的問題,因?yàn)槭窃趂unction中忧陪,但function解決了閉包陷阱的問題扣泊;要使用 break近范、continue 可以使用 for、for...in延蟹、for...of评矩、while。用于遍歷數(shù)組元素使用:for()阱飘,forEach()斥杜,map(),for...of 用于循環(huán)對象屬性使用:for...in

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沥匈,一起剝皮案震驚了整個濱河市蔗喂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌高帖,老刑警劉巖缰儿,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異散址,居然都是意外死亡乖阵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門预麸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞪浸,“玉大人,你說我怎么就攤上這事师崎∧眨” “怎么了椅棺?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵犁罩,是天一觀的道長。 經(jīng)常有香客問我两疚,道長床估,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任诱渤,我火速辦了婚禮丐巫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勺美。我一直安慰自己递胧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布赡茸。 她就那樣靜靜地躺著缎脾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪占卧。 梳的紋絲不亂的頭發(fā)上遗菠,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天联喘,我揣著相機(jī)與錄音,去河邊找鬼辙纬。 笑死豁遭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贺拣。 我是一名探鬼主播蓖谢,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼譬涡!你這毒婦竟也來了蜈抓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤昂儒,失蹤者是張志新(化名)和其女友劉穎沟使,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渊跋,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡腊嗡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拾酝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片燕少。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蒿囤,靈堂內(nèi)的尸體忽然破棺而出客们,到底是詐尸還是另有隱情,我是刑警寧澤材诽,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布底挫,位于F島的核電站,受9級特大地震影響脸侥,放射性物質(zhì)發(fā)生泄漏建邓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一睁枕、第九天 我趴在偏房一處隱蔽的房頂上張望官边。 院中可真熱鬧,春花似錦外遇、人聲如沸注簿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诡渴。三九已至,卻和暖如春塔嬉,著一層夾襖步出監(jiān)牢的瞬間玩徊,已是汗流浹背租悄。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恩袱,地道東北人泣棋。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像畔塔,于是被迫代替她去往敵國和親潭辈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容