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

访客4年前黑客文章1000

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

相关文章

转1024:深挖百度云泄密事宜,更新新查看方式

====7月20日更新==== 原帖和留言公布的一些链接都已经被协调了,显示0分享。 不外论坛网友分享了一种能够查看的方式: 在pan.baidu.com后面加个wap/,模拟手机登录, ht...

黑客教你查询某人信息(黑客真的可以查询到别人的信息

要说现在大家生活中绝对不可或缺的除了电力之外就是网络了。有网没电很可怕,但多少手机还能撑一会,有电没网就太悲催了!尤其还是那种Wi-Fi就躺在列表中,偏偏就你一个人上不去网,想死的心有没有咩? 其实...

长江十年禁渔是真的吗?长江为什么十年禁渔背后原因揭秘

农业农村部官网近日发布关于长江流域重点水域禁捕范围和时间的通告,宣布从2020年1月1日0时起实施长江十年禁渔计划。通告称,长江干流和重要支流除水生生物自然保护区和水产种质资源保护区以外的天然水域,最...

HTTP/2功能更好,可是安全性又怎么呢

依据W3Techs的 查询数据 显现,现在大约有11%的网站运用了新式的互联网通讯协议–HTTP/2,而在一年之前,其占比只要2.3%。 没错,这个新的协议确实能够供给更好的功能,并且也能够与之前的H...

腰疼是什么原因?经常感到腰疼,或许是3个原因在作祟

腰疼是什么原因?经常感到腰疼,或许是3个原因在作祟

腰疼是什么原因(经常感到腰疼,或许是3个原因在作祟)人的腰部是非常重要的器官,因为有了腰部的支撑,所以人们才能够坐立行走,这些动作都是建立在腰部上的,有部分人出现了腰疼的情况。腰疼的现象其实在生活当中...

黑客去哪找「雇佣黑客偷试卷犯法吗」

  ⒈寻找黑客帮忙!   下载一个彩虹QQ。 这一能够见到隐藏的好友, 和另一方的IP地址!   ⒉黑客中介公司怎么联系   找中介公司干什么?立即找黑客就行啊,许多 的   ⒊网上被骗了能够找黑客能...