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

访客3年前黑客文章979

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

相关文章

黑客能查出聊天记录吗 黑客如何获取微信记录

不说废话,用discuz做站,一定要注意下面的一些事项,这些都是我平时遇到的问题,希望对大家有帮助: 1、搞清楚discuz系统版本、模块版本、主题版本的兼容性和编码的一致性 2、伪静态结构要注意...

黑客在公司中叫什么职位(黑客帝国主演叫什么)-黑客学长网盘

黑客在公司中叫什么职位(黑客帝国主演叫什么)-黑客学长网盘

黑客在公司中叫什么职位(黑客帝国主演叫什么)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客...

金融助力实体经济 上半年贷款增加12.09万亿元

金融助力实体经济 上半年贷款增加12.09万亿元

“资金问题解决了,我们正抓紧抢进度,一定要把疫情造成的损失夺回来!”在闽西革命老区连城县中触电子有限公司,看着工人们热火朝天地生产,总经理张仁贵很振奋。 因为精度和透过率高,中触电子有限公司生产...

如何做一名优秀的黑客(如何做一名合格的黑客?)

一、如何做一名优秀的黑客(如何做一名合格的黑客?)方法总结 1、如何成为一名合格的黑客?与其说是学黑客,不如说你是想学木马这些东东,想成为大吓。首先你要对这个有极大的兴趣然后当然就是怀着极大的决心去...

黑客速成(黑客速成游戏hackthegame1怎么玩)

黑客速成(黑客速成游戏hackthegame1怎么玩)

本文导读目录: 1、如何速成黑客? 2、怎样速成黑客,在哪学? 3、怎样速成黑客? 4、怎样速成黑客 5、黑客速成 ! 如何速成黑客? 呵呵、 速成? 做梦应该可以。 不付出努力...

麻豆商务预约

错过一切的惊险刺激与不惊险刺激,大家也要再次错过了。模特商务接待模特预约,从这种从古至今的事例中,我感触良多,因而做为小说集痴的因为我刚开始渐渐地自我控制了。 女学妹迎槐简单自我介绍 能在这里受邀发言...