您好,登錄后才能下訂單哦!
JS中數組的迭代方法有哪些?針對這個問題,今天小編總結這篇有關JS中數組的文章,希望幫助更多想學習Javascript的同學找到更加簡單易行的辦法。
在日常處理JS的數組過程中, 我們通常是采用for循環的方式來實現. 下面總結一些常用的除for循環之外的數組迭代方法.
forEach (循環)
讓數組的每一項分別去做一件事情
let a = [1,2,3]; a.forEach(function(value,i){ console.log("第" + (i + 1) + "項 :" + value) }) // 第1項 :1 // 第2項 :2 // 第3項 :3
map (映射)
跟forEach功能類似, 但是map有返回值,產生一個新的數組,不改變原來數組
let a = [1,2,3]; a.map(function(value,i){ return value * 2 }) // 第1項 :2 // 第2項 :4 // 第3項 :6
map和forEach的對比:
// 沒有返回值的forEach: let a = [1, 2, 3]; a = a.forEach(function (value, i) { return value * 2 // undefine }) // 有返回值的map: let b = [1, 2, 3]; b = b.map(function (value, i) { return value * 2 // [2,4,6] })
可能遇到的坑: map處理完的數據之間多了逗號分隔符
原因: map遍歷后還是個數組,數組元素之間逗號分隔,插入到DOM時只是調用了toString而已,數組元素之間逗號分隔符一起帶進去了,map遍歷后直接把其連接成字符串就沒這個問題了
處理辦法: map后面跟上 .join(‘’)
reduce (累計)
reduce() 方法接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值。
reduce() 可以作為一個高階函數,用于函數的 compose。
注意: reduce() 對于空數組是不會執行回調函數的。
前項和后項做計算
let a = [1, 2, 3]; a = a.reduce(function (prev, next) { return prev + next // 1+2+3 = 6 })
filter (過濾)
過濾掉不符合條件的值, 返回新數組
let a = [1, 2, 3]; a = a.filter(function (value, i) { return value > 2 }) console.log(a) // 3
every (全部)
判斷每一個元素是否全部滿足條件, 有的話返回true, 否則false
let a = [1, 2, 3]; a = a.every(function (value, i) { return value > 2 }) console.log(a) // false
some (任意)
判斷每一個元素是否有任意一個滿足條件, 有的話返回true, 否則false
let a = [1, 2, 3]; a = a.every(function (value, i) { return value > 2 }) console.log(a) // true
以上就是JS中數組的迭代方法介紹,詳細使用情況還得要大家自己使用過才能知道具體要領。如果想閱讀更多相關內容的文章,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。