reduce的用法
一个数组中,对上一次返回的数据和当前数据的一些处理,比如说比大小,累加。上一次返回的数据可以自己return设置。
arr.reduce(function(prev,cur,index,arr){
...
}, init);
`
```javascript
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值
现实场景中使用的效果:
数组实现table中勾选的项之和的金额
money.reduce((prev, e) => {
if (!isNaN(Number(e))) {
return (parseInt(Number(prev) * 100) + parseInt(Number(e) * 100)) / 100;
}
return 0;
});
效果如果所示:
求数组之和
var sum = arr.reduce(function (prev, cur) {
return prev + cur;
},0);
求数组的最大一项
var max = arr.reduce(function (prev, cur) {
return Math.max(prev,cur);
});
数组的去重
var newArr = arr.reduce(function (prev, cur) {
prev.indexOf(cur) === -1 && prev.push(cur);
return prev;
},[]);