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

访客4年前黑客文章1032

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

相关文章

德国宣布驱逐一名斯巴鲁森林人如何俄罗斯驻德外交官

  中新社柏林2月8日电 (记者 彭大伟)德国外交部8日表示,作为对俄罗斯本月5日驱逐包括一名德国外交官在内的欧盟多国外交官的回应,其已于当天决定驱逐俄罗斯驻德国大使馆一名外交官,宣布其为“不受欢迎的...

黑客偷拍的偷拍(黑客偷资料)

黑客偷拍的偷拍(黑客偷资料)

面对偷拍,哪些常见的方式需要提防? 1、小心公交车偷拍 现代的都市一遇到上下班时,公交车内便是人挤人。2、比如:插座内、烟雾报警器、灯座以及对着床的物品也要检查。如果是经常住酒店的话也可以在网上购买专...

九九艳阳天是指什么(九九艳阳天原版原唱)

"公园里盛开了花束和金色的花朵,在9号那一天,它很重."阴历九月初九是我国的一个传统式节日——九九重阳节,它也是老人的十一国庆。在这里美好的一天,央视安微卫视发布了2018年九九重阳节特别策划《九九艳...

无花果为什么被叫做无花果?蚂蚁庄园小鸡宝宝考考你4月19日答案

无花果为什么被叫做无花果?蚂蚁庄园小鸡宝宝考考你4月19日答案

2020年4月19日支付宝蚂蚁庄园庄园小课堂答案是什么?4月19日的问题是无花果为什么被叫做“无花果”??给出的选项是因为看不见它的花、因为它不开花,大家知道应该选择哪个答案吗?下面小编为大家带来了2...

划组词(试的拼音)

  划,hua二声:(荡舟;四声:打算,划破。   划然 huá rán,划算 huá suàn,划拳 huá quán,荡舟 huá chuán,划拉 附子信息网 huá lā,划桨 huá jiǎ...

怎么偷偷远程查看别人微信(同步关联对方微信不被发现2020)

  如何悄悄远程控制查询他人手机微信(同歩关系另一方手机微信不被发觉2020)iOS版微信升级到到7.0.20版本号从官方网升级日志看来并沒有发现什么尤其的新作用仅仅修补了一些已经知道的难题但历经网民...