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
相关文章
|
7月前
|
开发者 Python
Python中的函数式编程:理解map、filter和reduce
【2月更文挑战第13天】 本文深入探讨了Python中函数式编程的三个主要工具:map、filter和reduce。我们将详细解释这些函数的工作原理,并通过实例来展示它们如何使代码更简洁、更易读。我们还将讨论一些常见的误解和陷阱,以及如何避免它们。无论你是Python新手还是有经验的开发者,本文都将帮助你更好地理解和使用这些强大的函数。
|
4月前
|
分布式计算 Python
【python笔记】高阶函数map、filter、reduce
【python笔记】高阶函数map、filter、reduce
|
7月前
|
JavaScript 前端开发 索引
|
7月前
|
Python
Python函数式编程,map(), filter() 和 reduce() 函数的作用是什么?
Python函数式编程,map(), filter() 和 reduce() 函数的作用是什么?
73 4
|
7月前
|
分布式计算
MapReduce中的Map和Reduce函数分别是什么作用?
MapReduce中的Map和Reduce函数分别是什么作用?
485 0
|
流计算
reduce补充二
reduce补充二
51 0
|
SQL 缓存 分布式计算
map-reduce执行过程
map-reduce执行过程
141 0
|
Python
Python编程:list列表的几个高阶函数map、filter、reduce
Python编程:list列表的几个高阶函数map、filter、reduce
133 0
|
分布式计算 Python
python入门--------高阶函数(lambda,map,reduce,filter,replace)
python入门--------高阶函数(lambda,map,reduce,filter,replace)
203 0
|
索引
数组reduce方法的高级用法
因为用for循环被老大鄙视之后,这几天都在偷偷摸摸的研究数组的那几个迭代方法。 使用下来,感觉确实妙用无穷,仿佛自己的逼格在无形中变得高大了一点点,哈哈,上一篇文章的简单介绍确实有点糙,因此决定重新一些总结文章。这篇文章就是专门总结reduce方法的,这个方法大有可研究的地方,值得大家get它并去动手实践一下。 上一篇文章我认为reduce是一个聚合或者减少方法,它可以将数组中的每一项通过叠加变成一项,但是其实这种说法似乎不太准确。先不管这个,我们来看看例子再说。
184 0