您好,登錄后才能下訂單哦!
題目:求出以下數組中大于20的值分別乘以2然后再取總
let nums = [23,45,6,78,8,14]
解答:
ES5寫法
let newNums = nums.filter(function(n){
return n>20
}).map(function(n){
return n*2
}).reduce(function(prevalue,n){
return prevalue+n
})
ES6寫法
let newNums = nums.filter(n => n>20).map(n => n*2).reduce((prevalue,n)=> prevalue+n)
console.log(newnums)
有木有感覺這波操作很騷氣,代碼簡潔,閱讀性又很強,這種寫法也叫作函數式編程,函數永遠是第一公民
filter作用:每個回調函數必須返回一個布爾值,如果是true就把當前遍歷到的值添加到一個新數組里面(函數內部會自動創建一個新數組),如果是false就過濾掉,總的返回一個新的數組,我們要做的就是聲明一個變量去接收就行了。
map作用:映射
reduce作用:對數組中所有內容進行匯總
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。