JS數(shù)組遍歷中for,for in,for of,map,forEach各自的使用方法與優(yōu)缺點(diǎn)
JS數(shù)組遍歷普通函數(shù)
優(yōu)點(diǎn):支持流程控制(break、continue、return)
for
const arr = ["A", "B", "C"] for(let i = 0; i<arr.length; i++){ console.log(arr[i]) }
優(yōu)點(diǎn):能夠?qū)λ饕_控制
缺點(diǎn):語(yǔ)法較為繁瑣
for in
const arr = ["A","B","C"] arr["3"] = 1 Array.prototype["cc"] = "ck" for(let e in arr){ console.log(arr[e]) }
缺點(diǎn):
1.遍歷索引為字符串,即e類型為字符串
2.會(huì)遍歷可枚舉的非數(shù)字類型鍵以及原型上的鍵
3.不同瀏覽器對(duì)for in 順序?qū)崿F(xiàn)可能不一致
for of
const arr = ["A","B","C"] arr["3"] = 1 Array.prototype["cc"] = "ck" for(let i of arr){ console.log(i) }
優(yōu)點(diǎn):語(yǔ)法簡(jiǎn)潔、有序遍歷
缺點(diǎn):由于遍歷的是值,對(duì)索引無(wú)直接控制
函數(shù)式編程-->高階函數(shù)
缺點(diǎn),不能進(jìn)行流程控制
map
const arr = ["A","B","C"] arr.map(e => console.log(e))
優(yōu)點(diǎn):語(yǔ)法簡(jiǎn)潔,返回一個(gè)舊數(shù)組的映射數(shù)組,不影響原數(shù)組
forEach
const arr = ["A","B","C"] arr.forEach(e => console.log(e))
優(yōu)點(diǎn):語(yǔ)法簡(jiǎn)潔,在不需要返回?cái)?shù)組時(shí),性能較好比map好
名稱 | 流程控制 | 函數(shù)式 |
---|---|---|
for | T | |
for of | T | |
forEach | T | |
map | T |
JS數(shù)組遍歷函數(shù)總結(jié):
在不需要流程控制時(shí),優(yōu)先使用map,不需要返回值使用forEach,需要索引的控制時(shí),可以回退至for,for of一般結(jié)合內(nèi)置默認(rèn)迭代器的數(shù)據(jù)結(jié)構(gòu)(Map、Set)使用,在需要結(jié)合生成器 async await 異步迭代時(shí)的選擇
更多關(guān)于JS數(shù)組遍歷方法的技巧請(qǐng)查看下面的相關(guān)鏈接
- JS中Map和ForEach的區(qū)別
- JavaScript中的數(shù)組遍歷forEach()與map()方法以及兼容寫法介紹
- js遍歷詳解(forEach, map, for, for...in, for...of)
- JS forEach和map方法的用法與區(qū)別分析
- 原生JS forEach()和map()遍歷的區(qū)別、兼容寫法及jQuery $.each、$.map遍歷操作
- JS中forEach()和map()的區(qū)別講解
- 簡(jiǎn)述JS中forEach()、map()、every()、some()和filter()的用法
- JS中的常見數(shù)組遍歷案例詳解(forEach,?map,?filter,?sort,?reduce,?every)
- JS中forEach、for、map的區(qū)別示例詳解
相關(guān)文章
Javascript動(dòng)態(tài)引用CSS文件的2種方法介紹
這篇文章主要介紹了Javascript動(dòng)態(tài)加載CSS文件的2種方法,經(jīng)常使用和非常實(shí)用的方法,需要的朋友可以參考下2014-06-06javascript中本地存儲(chǔ)localStorage,sessionStorage,cookie,indexDB的用法
一文講清楚javascript?本地存儲(chǔ)localStorage,sessionStorage,cookie,indexDB的使用方法,以及各自的使用場(chǎng)景2025-02-02細(xì)說(shuō)javascript函數(shù)從函數(shù)的構(gòu)成開始
javascript函數(shù)是一個(gè)比較奇怪的東西,接觸一段時(shí)間你就會(huì)犯迷糊,我想從函數(shù)的構(gòu)成來(lái)細(xì)說(shuō)函數(shù),這聽起來(lái)像是一句廢話,講任何東西當(dāng)然是從構(gòu)成去談2013-08-08簡(jiǎn)介JavaScript中的sub()方法的使用
這篇文章主要介紹了JavaScript中的sub()方法的使用,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06javascript?DOM?querySelectorAll()?使用方法
querySelectorAll()?方法返回文檔中匹配指定?CSS?選擇器的所有元素,返回?NodeList?對(duì)象,一般用來(lái)獲取指定id火class下的所有節(jié)點(diǎn)2023-06-06