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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值