reduce 方法
来源:互联网 发布:淘宝类似威廉的男装店 编辑:程序博客网 时间:2024/06/07 23:43
数组的reduce方法,接收一个函数(必须)和指定的初始值(非必须)作为参数,函数有三个参数,分别为初始值,当前项,当前数组,进行累加或者累积操作,初始值为每次累加或者累计后的结果
注意:在ie9一下的浏览器中,并不支持该方法 !
语法:arr.reduce(fn(pre,cur,arr){},[initialValue])
一些妙用:
统计每个字符出现的次数
//方法1: var obj=Array.prototype.reduce.call(str,function(pre,cur){ pre[cur]?pre[cur]++:pre[cur]=1; return pre; },{}); console.log(obj); //{a: 4, b: 1, c: 3, d: 3, e: 3, …}
//方法2: var obj=str.split('').reduce(function(pre,cur){ pre[cur]?pre[cur]++:pre[cur]=1; return pre; },{}) console.log(obj); //{a: 4, b: 1, c: 3, d: 3, e: 3, …}
累加或者累积
var arr=[1,2,3,4,5,6];var sum=arr.reduce(function(pre,cur,index,arr){ console.log(index);//当前项的下标 return pre+cur;});console.log(sum);//21
实现 add()(1,2)(3,4)(7,8,9)()
function add(){ var sum=0; function inner(pre,cur){ return pre+cur; } sum=Array.prototype.slice.call(arguments).reduce(inner,sum); return function(){ if(arguments.length==0){ return sum; }else{ sum=Array.prototype.slice.call(arguments).reduce(inner,sum); return arguments.callee; } } } console.log(add()(1)(2,3)());//6
reduce 操作对象
可以通过第二个参数指定初始值操作对象的单个属性
var result = [ { subject: 'math', score: 88 }, { subject: 'chinese', score: 95 }, { subject: 'english', score: 80 } ]; var totalScore=result.reduce(function (pre,cur) { return pre+cur.score; },0); console.log(totalScore);
阅读全文
0 0
- reduce方法
- reduce 方法
- javascript-reduce 方法 (Array)
- reduce 方法 (Array) (JavaScript)
- 那些Python方法---reduce()
- 数组方法reduce
- Js的reduce()方法
- js reduce方法
- javaSctipt数组的reduce方法
- 【js】Array.prototype.reduce方法
- JavaScript数组方法reduce解析
- javascript---数组array方法reduce()
- JavaScript数组map()、reduce()方法
- 数组reduce()和reduceRight()方法
- Array.reduce()方法的使用
- javascript 中的reduce方法 和 reduceRight方法
- reduce
- reduce()
- 安装ros遇到的问题:有未满足的依赖关系......
- Linux--驱动之设备树 学习之路
- SSH环境搭建
- C++—— 恢复状态标志和清理缓存(以标准库输入流std::cin输入整数时死循环为例)
- 51Nod 1381 硬币游戏
- reduce 方法
- 单点故障
- C语言经典算法(一)——求最大公约数的四种方法
- hbase 集群(完全分布式)方式安装
- java.lang.NoSuchFieldError: USE_DEFAULTS
- 【第十一周】673. Number of Longest Increasing Subsequence
- VS项目属性的一些配置项的总结(important)
- 什么叫同时处理两个ajax请求?
- 最坏时间复杂度