一、filter 函數過濾 後面接回調函數 返回布爾值
->true:函數會自動將這次的回調的n 加入新數組
->false:函數會自動過濾掉這次的n
需求一:取出小於100的數字
第一種方式使用for循環,第二種方式使用高階函數filter
const nums = [100,20,49,300,799,10,60]
let nums = 0
for (let n of nums){
if(n < 100){
newNums.push(n)
}
}
//filter
let newNums = nums.filter(function(n){
return n < 100
})
需求二: 將小於100的數字乘以2
二、map函數
let new2Nums = []
for ( let n of new2Nums ){
new2Nums.push(n*2)
}
//map
let new2Nums = newNums.map(function(n){
returen newNums * 2
})
需求三: 算出乘以2以後的數字的總和
三、reduce 函數 將數組中所有的內容匯總
let total = 0
for (let n of new2Nums){
total += n
}
//reduce
let total = new2Nums.reduce(function(pre,n){
return pre + n
},0)
將如上三個需求合併在一起
let total = nums.filter(function(n){
return n <100
}).map(function(n){
return n*2
}).reduce(function(pre,n){
return pre+n
},0)
*******
如下是見證奇蹟的時刻
let total = nums.filter(n => n < 100).map(n => n * 2).reduce((pre,n)=> pre + n)