溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS中數(shù)組的迭代方法有哪些?

發(fā)布時間:2020-05-19 14:29:35 來源:億速云 閱讀:245 作者:Leah 欄目:web開發(fā)

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è)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI