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