js中reduce的用法,如何使用reduce函数

访客4年前黑客文章998

reduce的界说 

reduce() 方式吸收一个函数作为累加器,数组中的每个值(从左到右)更先缩减,最终盘算为一个值。

reduce() 可以作为一个高阶函数,用于函数的 compose。

注重: reduce() 对于空数组是不会执行回调函数的。


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以上版本。


reduce的用法

1、数组求和

var numbers = [1, 2, 3, 4];
 
function getSum(total, num) {
    return total + num;
}

console.log(numbers.reduce(getSum)) //10


2、数组扁平化

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]


3、数组更大值

var numbers = [1,10,100,0];
var max = numbers.reduce(function(pre,cur,inde,arr){return pre>cur?pre:cur;}); 
console.log(max)  //100


4、数组转工具

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}


5、统计字符串中每个字符泛起的次数

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 }


6、数组去重

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米代金券、领会最新阿里云产物的种种优惠流动点击进入

相关文章

颞间隙感染(颞间隙感染切开部位)

  得了颞间隙传染怎么办  自动烹调锅继发于相邻间隙传染的颞间隙蜂窝组hs编码查询织炎,可因其他间隙脓肿切开引流后阿彻他的格斗,颞间隙的炎症也随之消退。颞间隙爱很烂完整版脓肿形成后应切开引流,按照脓肿...

品牌传播方案怎么做(手把手教你写好品牌传播

品牌传播方案怎么做(手把手教你写好品牌传播

你是否遭遇过以下类似的场景: 你认为自己写的方案品牌定位准确、创意非常好、传播渠道选择正确、花钱少办事多,是宣传品牌形象的强力推手。 但老板/客户总是觉得你的方案不够好,具体也说不出原因,经常...

机箱风扇推荐怎么装,教你怎么选购好的机箱风

机箱风扇推荐怎么装,教你怎么选购好的机箱风

高端玩家对电脑主机性能有更高的要求,而高性能的硬件也需要良好的散热,机箱风扇也就成了游戏玩家的必备工具。 此前我们对50元以下的亲民定位机箱风扇进行了一次横评《50元以下该选谁 15款市售机箱风...

塑身衣真的能减肥吗(塑身衣可瘦腰燃脂保持身材?)

  束身衣确实能减肥吗(束身衣可瘦腰腹减脂瘦下去?)苗条、均匀的身型是许多女士追求完美的总体目标,除开运动健身、控制饮食以外,许多 女士还会继续根据穿束身衣的方法做到减肥的实际效果。许多店家都宣称束身...

黑客教你三分钟盗  黑客

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多google,baidu,我们往...

夫妻分居多长时间可以自动离婚 分居两年可以自动离婚吗

有些人由于另一半不同意离异,因此 挑选与另一方两地分居,讨论一下夫妻分居多久能够自动离婚? 一、夫妻分居多久能够自动离婚 1、两地分居没法自动离婚 两地分居是没法自动离婚的,大伙儿一定要清晰...