JavaScript幾種常見(jiàn)循環(huán)遍歷使用和區(qū)別
前言
在javascript語(yǔ)言中經(jīng)常需要使用循環(huán)語(yǔ)法去獲取數(shù)據(jù)中的一些值,例如,我們需要將列表中的商品逐個(gè)輸出,或者運(yùn)行相同的代碼將數(shù)字 1 到 10 逐個(gè)輸出。方法也比較多,該篇將講解常見(jiàn)的循環(huán)遍歷的使用及區(qū)別
1.“for” 循環(huán):它是最常使用的循環(huán)形式
對(duì)以上代碼做出解釋
begin | let i = 0 | 進(jìn)入循環(huán)時(shí)執(zhí)行一次。 |
---|---|---|
condition | i <= 3 | 在每次循環(huán)迭代之前檢查,如果為 false,停止循環(huán)。 |
body(循環(huán)體) | alert(i) | 條件為真時(shí),重復(fù)運(yùn)行。 |
step | i++ | 在每次循環(huán)體迭代后執(zhí)行。 |
2."for..in" 循環(huán):為了遍歷一個(gè)對(duì)象的所有鍵(key)
for (key in object) { // 對(duì)此對(duì)象屬性中的每個(gè)鍵執(zhí)行的代碼 } ? // 案例:拿到對(duì)象中的鍵 let user = { name: "千鋒教育", age: 11, isAdmin: true }; for (let key in user) { // keys alert( key ); // name, age, isAdmin // 屬性鍵的值 alert( user[key] ); // 千鋒教育,11, true }
3.for..of:不能獲取當(dāng)前元素的索引,只是獲取元素值
let arr = ["千鋒教育", "HTML5學(xué)科", "前端扛把子"]; for (let key of arr) { alert( arr[key] ); // 千鋒教育,HTML5學(xué)科,前端扛把子 }
對(duì)于以上常見(jiàn)三種的循環(huán)總結(jié):
- for循環(huán):常見(jiàn)的基礎(chǔ)循環(huán)、可以提前break
- for..in循環(huán):用于遍歷對(duì)象屬性、得到對(duì)象中的鍵(字符串)、不可以直接進(jìn)行數(shù)學(xué)運(yùn)算、可以提前break
- for..of循環(huán):用于遍歷數(shù)組和可迭代對(duì)象的循環(huán)、得到數(shù)組對(duì)象中的值、可以提前break
4.forEach:允許為數(shù)組的每個(gè)元素都運(yùn)行一個(gè)函數(shù)
arr.forEach(function(item, index, array) { // ... 執(zhí)行代碼 }); ? // 案例: let arr = [1, 2, 3, 4, 5]; arr.forEach(function (item) { ? ? console.log(item) // 1,2,3,4,5 });// undefined // 沒(méi)有返回值,本質(zhì)上等同于 for 循環(huán),對(duì)每一項(xiàng)執(zhí)行 function 函數(shù),不會(huì)改變?cè)瓟?shù)組
5.Map and Set(映射和集合)
Map是一組鍵值對(duì)的結(jié)構(gòu),具有極快的查找速度 let arr = ['HTML5', 'Java', 'python']; let age = [100, 80, 90]; let res = new Map([['HTML5', 100], ['Java', 80], ['python', 90]]); res.get('HTML5'); // 100 ? // Map常見(jiàn)的方法 let res = new Map(); // 空Map res.set('勇哥', 18); // 添加新的key的value res.has('勇哥'); // 是否存在key res.get('勇哥'); // 18 res.delete('勇哥'); // 刪除key res.get('翔哥'); // undefined ? // Set和Map類似,也是一組key的集合,但不存儲(chǔ)value。由于key不能重復(fù),所以,在Set中,沒(méi)有重復(fù)的key let set = new Set(["千鋒教育", "HTML5", "11"]); for (let value of set) alert(value); ? // 與 forEach 相同: set.forEach((value, valueAgain, set) => { alert(value); });
Map和Set的總結(jié):
- Map是一個(gè)帶鍵的數(shù)據(jù)項(xiàng)的集合、任何鍵、對(duì)象都可以作為鍵
- Set是一組唯一值的集合、不能對(duì)元素進(jìn)行重新排序,也不能直接按其編號(hào)來(lái)獲取元素
以上:作為比較高頻的面試題,同學(xué)們可以針對(duì)練習(xí)記憶!
到此這篇關(guān)于JavaScript幾種常見(jiàn)循環(huán)遍歷使用和區(qū)別的文章就介紹到這了,更多相關(guān)JS循環(huán)遍歷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- js中的循環(huán)方式及各種遍歷的方法
- JS中循環(huán)遍歷數(shù)組的四種方式總結(jié)
- 解決vuejs 使用value in list 循環(huán)遍歷數(shù)組出現(xiàn)警告的問(wèn)題
- JavaScript 中的12種循環(huán)遍歷方法【總結(jié)】
- js 實(shí)現(xiàn)獲取name 相同的頁(yè)面元素并循環(huán)遍歷的方法
- JavaScript中利用for循環(huán)遍歷數(shù)組
- Javascript數(shù)組循環(huán)遍歷之forEach詳解
- JS簡(jiǎn)單循環(huán)遍歷json數(shù)組的方法
- JavaScript中循環(huán)遍歷Array與Map的方法小結(jié)
相關(guān)文章
使用Bootstrap美化按鈕實(shí)例代碼(demo)
這篇文章主要介紹了使用Bootstrap美化按鈕實(shí)例代碼(demo),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02js使用generator函數(shù)同步執(zhí)行ajax任務(wù)
這篇文章主要為大家詳細(xì)介紹了js使用generator函數(shù)同步執(zhí)行ajax任務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09全網(wǎng)小程序接口請(qǐng)求封裝實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于全網(wǎng)小程序接口請(qǐng)求封裝的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Code:loadScript( )加載js的功能函數(shù)
Code:loadScript( )加載js的功能函數(shù)...2007-02-02JS實(shí)現(xiàn)數(shù)組過(guò)濾從簡(jiǎn)單到多條件篩選
一般情況下的單條件篩選,數(shù)組的filter方法就能夠滿足需求,本文討論的重點(diǎn)是多條件下的復(fù)合篩選,并列出了幾個(gè)相關(guān)知識(shí)點(diǎn),感興趣的可以了解一下2021-07-07