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