reduce的用法及實例
reduce的定義:reduce() 方法接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值。說白了就是累加器。
我們看一下之前的累加:
看例子:
//假設我們有一個數組 var arr=[,1,2,3,4,5,6,7,8] //我們求這個數組里面值的綜總和 //按照平常寫法: var num=0 for(var i=0;i<arr.length;i++){ num+=arr[i] } console.log(num)
最后輸出結果為:36
下面介紹reduce:(它的基本語法):
var arr=[1,2,3,4,5,6,7,8] var arr2=arr.reduce(function(item1,item2){//他有兩個參數 console.log(item1,item2) //我們先看一下輸出什么 })
輸出結果為:

他的第一次的兩個參數,打印出了數組的前兩項,
從第二次開始的第一個參數是回調函數的“返回值”,第二個參數從數組中取下一個值
我們看一下,假如我們給他一個返回值:
var arr=[1,2,3,4,5,6,7,8] var arr2=arr.reduce(function(item1,item2){ console.log(item1,item2) return "我是誰呀?" })
我們看輸出結果:

下面我們繼續上面的求數組值的總和:
var arr=[1,2,3,4,5,6,7,8] var arr2=arr.reduce(function(item1,item2){ console.log(item1,item2) return item1+item2 }) console.log(arr2)
輸出結果:

當然他還有一個初始值(可寫可不寫):
var arr=[1,2,3,4,5,6,7,8] var arr2=arr.reduce(function(item1,item2){ console.log(item1,item2) return item1+item2 },100)//初始值 console.log(arr2)
看結果它的第一個參數就是我們設置的初始值:

下面我們寫個對象的實例:
//我們求出年齡和身高的總和 var arr=[ { age:22, height:180 }, { age:22, height:180 }, { age:22, height:180 } ] var n=arr.reduce(function (item1,item2) { console.log(item1,item2) return{ //因為他是個對象所以我們返回一個對象 age:item1.age+item2.age, height:item1.height+item2.height } }) //你也可以給他設置初始值,注意也要是一個對象 console.log(n)
輸出結果:


浙公網安備 33010602011771號