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