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

访客4年前黑客文章1022

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

相关文章

绩效工资是什么(绩效工资考核的作用)

绩效工资考核的作用是通过激励个人提高绩效促进组织的绩效。即是通过绩效工资传达企业绩效预期的信息,刺激企业中所有的员工来达到它的目的;使企业更关注结果或独具特色的文化与价值观;能促进高绩效员工获得高期望...

冰淇淋怎么做(冰激凌在家就能做,食材做法都简单)

  说到冰淇淋,沒有哪一个女人与小孩不喜欢的,夏季除开甜瓜,冰淇淋便是不可或缺了,许多人觉得冰淇淋只有买着吃,实际上我们自己在家就能做,并且作法超级简单,口感一点也无须买回来的差,吃上一口奶香味浓厚,...

织梦网dedecms 0day

把以下代码中的:validate=dcug 改为当前的验证码,即可直接进入网站后台,此漏洞的前提是必须得到后台路径才能实现。 http://www.123.com/织梦网站后台/login....

怎么找黑客买肉鸡-如何成为黑客 基础入门手机(如何0基础成为一名黑客

被黑客攻击怎么补救让自己变成黑客(如何让自己变成有钱人)什么是黑客小马电脑防止黑客的软件(如何防止黑客入侵电脑)如何和黑客对话qq修改密码器免验证(qq修改密码要身份验证)如何发挥黑客的积极作用利用平...

黑客是怎么盗取别人的微信的?如何查他的人微信记录?

黑客是怎么盗取别人的微信的?如何查他的人微信记录?专业盗取微信密码,开房查询,通话记录查询,查询微信聊天记录,非常靠谱!随着时代的发展,智能手机开始在人们的生活中发挥着至关重要的作用。毕竟,目前移动电...

有什么办法查姐妹微信出轨记录

随着11日0时的到来,京东生活服务在交出一份亮眼的成绩单同时,也通过线上线下融合的创新"玩法",推动数字经济与线下零售、产业带等实体经济深度融合,为实体经济带来新的发展思路。 今年11.11京东...