JS中數(shù)組的迭代方法有哪些?針對這個問題,今天小編總結這篇有關JS中數(shù)組的文章,希望幫助更多想學習Javascript的同學找到更加簡單易行的辦法。
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)烏海海南免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
在日常處理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ù)組的迭代方法介紹,詳細使用情況還得要大家自己使用過才能知道具體要領。如果想閱讀更多相關內容的文章,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章標題:JS中數(shù)組的迭代方法有哪些?
標題網(wǎng)址:http://jinyejixie.com/article20/iisjco.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、網(wǎng)站改版、軟件開發(fā)、動態(tài)網(wǎng)站、用戶體驗、網(wǎng)站內鏈
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)