1NetMedia_Blog

<< Chrome Ajax 跨域设置  类别: JS 获取鼠标点击元素 >>
Js中Array对象的reduce方法
[ 日期: 2019-06-12 2:55:15 PM | 作者: admin | 来源: Original | 人气:130 | 晴天 | 心情: +2 ] 字号: 【
急速栏目链接:
标签:reduce  |  
reduce() 可以作为一个高阶函数,用于函数的 compose。
语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
IE9及以上支持。

【原生实现】

Array.prototype.myReduce = function(fn,init){
var l = this.length;
var p = init;
var i = 0;
if(!init){
i = 1;
p = this[0];
}
for (i; i<l;i++){
p = fn(p,this[i],i,this);
}
return p;
}
eg:
var mySum = [1,2,3,4,5].myReduce(function(p,e,i,arr){
return p + e;
});
// mySum = 15


【reduce统计数组】
var obj = ['a','b','c','d','a','d'].reduce(function(p,e){
if(e in p){
p[e] ++;
}else{
p[e] = 1;
}
return p;
},{});

// obj = {a: 2, b: 1, c: 1, d: 2}

【reduce去重】
var result = ['a','b','c','d','a','d'].reduce(function(p,e){
if(p.indexOf(e)==-1){
p.push(e);
}
return p;
},[]);

//result = ["a", "b", "c", "d"]
   
Rss Comment  

没有相关评论

发表评论
请先注册,才能发表评论!
- 注册 -