js常用reduce方法
生活随笔
收集整理的這篇文章主要介紹了
js常用reduce方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、reduce使用場(chǎng)景
(1)reduce() 方法接收一個(gè)函數(shù)作為累加器,數(shù)組中的每個(gè)值(從左到右)開(kāi)始縮減,最終計(jì)算為一個(gè)值。
(2)reduce() 可以作為一個(gè)高階函數(shù),用于函數(shù)的 compose。
二、reduce使用說(shuō)明
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)接受四個(gè)參數(shù):
三、 使用reduce做加法
(1)使用+將字符轉(zhuǎn)換成整形
var total = [ 0, 1, 2, 3 ].reduce(( acc, cur ) => ~~acc + ~~cur); console.log(total)(2)使用~~ 將字符轉(zhuǎn)換成整形
var total = [ 0, 1, 2, 3 ].reduce(( acc, cur ) => +acc + +cur); console.log(total)四、 使用reduce做乘積
var arr = [1, 2, 3, 4]; var mul = arr.reduce((x,y)=>x*y) console.log( mul ); //求乘積,24五、reduce的高級(jí)用法
(1)計(jì)算數(shù)組中每個(gè)元素出現(xiàn)的次數(shù)
let names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];let nameNum = names.reduce((pre,cur)=>{if(cur in pre){pre[cur]++}else{pre[cur] = 1 }return pre },{}) console.log(nameNum); //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}(2)將多維數(shù)組轉(zhuǎn)化為一維
let arr = [[0, 1], [2, 3], [4,[5,6,7]]] const newArr = function(arr){return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[]) } console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7](3)對(duì)象里的屬性求和
var result = [{subject: 'math',score: 10},{subject: 'chinese',score: 20},{subject: 'english',score: 30} ];var sum = result.reduce(function(prev, cur) {return cur.score + prev; }, 0); console.log(sum) //60總結(jié)
以上是生活随笔為你收集整理的js常用reduce方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OPPO K11再度预热:5000mAh
- 下一篇: 数组对象常用处理方案(算法思路)