首页 > 其他 > 详细

reduce用法

时间:2021-04-22 09:22:09      阅读:19      评论:0      收藏:0      [点我收藏+]

基本语法

接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

function(total,currentValue, index,arr)
  total:        必需。初始值, 或者计算结束后的返回值。
  currentValue: 必需。当前元素
  currentIndex: 可选。当前元素的索引
  arr:          可选。当前元素所属的数组对象
  一般最常用的是前两个数.

 

使用场景

1. 简单使用,数组求和

const arr = [1, 2, 3, 4, 5]
const sum = arr.reduce((pre, item) => {
//pre为上一次回调函数返回值
//item为当前值
    return pre + item;
}, 0);
console.log(sum) //15

 

 

2. 数组最大值

const arr = [23,13,34,126]; 
const max = arr.reduce((pre,cur) => { 
return Math.max(prev,cur); 
}); // 126

 

3.计算字符串中每个字母的出现次数

const str = ‘orangeapple‘;
     const obj = str.split(‘‘).reduce((pre,item) => {
         pre[item] ? pre[item] ++ : pre[item] = 1;
         return pre;
     },{});
//初始值为{}, 判断对象中是否存在当前元素的属性,不存在就新增且设置值为1
 console.log(obj) //{o: 1, r: 1, a: 2, n: 1, g: 1, …}

 

4. 数组去重

const oriArr = [1, 2, 2, 4, 5, 5];
const arr = oriArr.reduce((prev, cur) => {
    return prev.includes(cur) ? prev : prev.concat(cur);
}, []);
或者:
const arr = oriArr.reduce((prev, cur) => {
    prev.indexOf(cur) === -1 && prev.push(cur);
    return prev;
},[]);
console.log(arr); //[1, 2, 4, 5]

 

5. 数组降维

const oriArr = [[1,2],[3,4],[5,6]];
const arr = oriArr.reduce((prev, cur) => prev.concat(cur),[]);
console.log(arr); //[1, 2, 3, 4, 5, 6]

 

reduce用法

原文:https://www.cnblogs.com/applesky/p/14687077.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!