reduce的介绍及用法

简介: reduce的介绍及用法

reduce的介绍及用法

1、参数介绍

array.reduce((pre, cur, index, arr)=>{
  ...
}, init);

pre: 必需。初始值,或者计算结束后的返回值。

cur: 必需。当前元素。

index: 可选。当前元素的索引。

arr: 可选。当前元素所属的数组对象

init: 可选。传递给函数的初始值,相当于 pre 的初始值。

reduce 里面有一定要 return,return 出去的值也要注意

2、基本数据类型去重

let arr2 = [9, 4, 3, 6, 9];
//基本类型去重
let set = arr2.reduce((pre, cur) => {
    !pre.includes(cur) && pre.push(cur)
    return pre
}, [])
console.log(set);  //[9,4,3,6]

3、引用数据类型去重

let list = [
    {
        subject: "数学",
        marks: 80
    },
    {
        subject: "语文",
        marks: 90
    },
    {
        subject: "英语",
        marks: 80
    },
]
function arrSet(value,arr) {
    let obj = {}
    let res = arr.reduce((pre, cur) => {
        if (!obj[cur[value]]) {
            obj[cur[value]] = true
            pre.push(cur)
        }
        return pre
    }, [])
    return res
}
let result = arrSet("marks",list);
console.log(result);  //[{subject:"数学",marks:80},{subject:"语文":90}]

4、基本数据类型求和

let arr2 = [9, 4, 3, 6, 9];
let sum = arr2.reduce((pre, cur) => {
    return pre + cur
},0)
console.log(sum)   //31

5、引用数据类型求和

let arr = [
  {
    value: 45,
  },
  {
    value: 88,
  },
  {
    value: 101,
  },
];
let newArr = arr.reduce((pre, cur) => {
  return pre + cur.value;
}, 0);
console.log(newArr);   //234
相关文章
|
4月前
|
存储 JSON 缓存
reduce学习
reduce学习
|
4月前
|
分布式计算 Python
【python笔记】高阶函数map、filter、reduce
【python笔记】高阶函数map、filter、reduce
|
7月前
|
JavaScript 前端开发 索引
|
7月前
|
Python
Python函数式编程,map(), filter() 和 reduce() 函数的作用是什么?
Python函数式编程,map(), filter() 和 reduce() 函数的作用是什么?
72 4
|
7月前
|
分布式计算
MapReduce中的Map和Reduce函数分别是什么作用?
MapReduce中的Map和Reduce函数分别是什么作用?
439 0
|
流计算
reduce补充二
reduce补充二
50 0
|
SQL 缓存 分布式计算
map-reduce执行过程
map-reduce执行过程
137 0
|
Python
Python编程:list列表的几个高阶函数map、filter、reduce
Python编程:list列表的几个高阶函数map、filter、reduce
132 0
|
索引
数组reduce方法的高级用法
因为用for循环被老大鄙视之后,这几天都在偷偷摸摸的研究数组的那几个迭代方法。 使用下来,感觉确实妙用无穷,仿佛自己的逼格在无形中变得高大了一点点,哈哈,上一篇文章的简单介绍确实有点糙,因此决定重新一些总结文章。这篇文章就是专门总结reduce方法的,这个方法大有可研究的地方,值得大家get它并去动手实践一下。 上一篇文章我认为reduce是一个聚合或者减少方法,它可以将数组中的每一项通过叠加变成一项,但是其实这种说法似乎不太准确。先不管这个,我们来看看例子再说。
184 0
|
JavaScript
辅助函数和高阶函数 map、filter、reduce
辅助函数和高阶函数 map、filter、reduce
146 0