reduce() 方式吸收一个函数作为累加器,数组中的每个值(从左到右)最先缩减,最终盘算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
注重: reduce() 对于空数组是不会执行回调函数的。
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
1、functiong必填,用于执行每个数组米素的函数。其参数如下:
total 必须。初始值, 或者盘算竣事后的返回值。
currentValue 必须。当前米素
currentIndex 可选。当前米素的索引
arr 可选。当前米素所属的数组工具。
2、initialValue可选,传递给函数的初始值。
IE-9以上版本、Firefox-3.0以上版本、Safari-4以上版本、Opera-10.5以上版本。
var numbers = [1, 2, 3, 4]; function getSum(total, num) { return total + num; } console.log(numbers.reduce(getSum)) //10
var rel=[[0, 1], [2, 3], [4, 5]].reduce(function(a, b) { return a.concat(b); }); console.log(rel) //[0, 1, 2, 3, 4, 5]
var numbers = [1,10,100,0]; var max = numbers.reduce(function(pre,cur,inde,arr){return pre>cur?pre:cur;}); console.log(max) //100
var arr = [{name: 'tony', age: 18}, {name: 'fly', age: 20}]; var obj = arr.reduce((prev, cur) => {prev[cur.age] = cur; return prev;}, {}); console.log(obj) //18:{name: "tony", age: 18} //20:{name: "fly", age: 20}
var arr = 'abcdaabc'; var info = arr.split('').reduce((p, k) => (p[k]++ || (p[k] = 1), p), {}); console.log(info); //{ a: 3, b: 2, c: 2, d: 1 }
Array.prototype.unique = function() { var sortArr = this.sort(), result = []; sortArr.reduce((v1,v2) => { if(v1 !== v2){ result.push(v1); } return v2; }) result.push(sortArr[sortArr.length - 1]); return result; }
......
1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入
2.腾讯云: 提供云服务器、云数据库、云存储、视频与CDN、域名等服务。腾讯云各种产物的最新流动,优惠券领取点击进入
3.广告同盟: 整理了现在主流的广告同盟平台,若是你有流量,可以作为参考选择适合你的平台点击进入
链接: http://www.fly63.com/article/detial/1056