数组的reduce方法
生活随笔
收集整理的這篇文章主要介紹了
数组的reduce方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
reduce方法有兩個參數,第一個參數是操作數組項的函數;第二個參數則是傳入的初始值,reduce最常用的方法是疊加,以下例子可以看出,reduce函數根據初始值0,不斷的疊加數組項:
var items = [10, 120, 1000];// sumSoFar第一次初始值是1,item第一次初始值是數組的第一個元素即10; var total = items.reduce(function add(sumSoFar, item) { // 1 10// 11 120// 131 1000 console.log(sumSoFar, item);return sumSoFar + item; // 這個值會變成下一次的sumSoFar }, 1);console.log(total); // 1131reduce函數的返回結果類型和傳入的初始值相同,上個例子中初始值為number類型,初始值也可為object類型:
var items = [10, 120, 1000];// sumSoFar第一次即初始值{sum: 0},item第一次為數組的第一個元素 var total = items.reduce(function (sumSoFar, item){// {sum: 0} 10// {sum: 10} 120// {sum: 130} 1000 console.log(sumSoFar, item);sumSoFar.sum = sumSoFar.sum + item; // 對sumSoFar對象的值sum進行處理,累加數組里的每一項return sumSoFar; // 返回處理后的sumSoFar對象 }, {sum: 0});console.log(total); // {sum:1130} var arr = [1,2,3,4,5,6,7,3,4,5,2,2,2];// p第一次為初始值{},k第一次為數組的第一個元素,之后每次迭代p為為處理后(p[k]++ || (p[k] = 1))的p var info = arr.reduce(function(p,k){p[k]++ || (p[k] = 1);return p; }, {});console.log(info); // {1: 1, 2: 4, 3: 2, 4: 2, 5: 2, 6: 1, 7: 1}?原文:https://www.cnblogs.com/accordion/p/5230287.html
轉載于:https://www.cnblogs.com/xjy20170907/p/11119795.html
總結
以上是生活随笔為你收集整理的数组的reduce方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue 踩坑日志 - 有关路由传参的坑
- 下一篇: kubernetes实战篇之通过api-