一.函数介绍
-
Array.reduce()方法是对数组进行遍历,返回一个计算后的值
-
使用方法:
Array.reduce((acc, cur, idx, src) => { }, initialValue)
- callback回调函数接收4个参数:
Accumulator (acc) (累计器) 如果传入了initialValue,Accumulator的初始值就是initialValue,没传入就是数组的第一个值
Current Value (cur) (当前值)
Current Index (idx) (当前索引)如果传入了initialValue,索引从0开始,没传入从1开始
Source Array (src) (源数组)
initialValue 指定的初始值,初始值可以是数字,数组,对象
二.例子
2.1.数组求和
const arr = [1, 2, 3, 4, 5, 6];
let c = arr.reduce((a, b) => {
console.log(a, b);
return a + b;
});
console.log(c);
2.2.对象数组求和
const arr = [
{
name: '张三',
count: 1
},
{
name: '李四',
count: 2
},
{
name: '王五',
count: 3
},
{
name: '赵六',
count: 4
}
];
/**
* 对象数组求和
* pre:number
* cur:当前对象
* 最后的0:初始值
*/
2.3.统计次数
/**
* 统计字母出现的个数
*/
let str = 'HelloWorld';
let arrStr = str.split('');
type TNumb = {
name: string;
count: number;
};
let arrFinal = arrStr.reduce((acc: TNumb[], cur: string): TNumb[] => {
let existItem = acc.find(it => it.name === cur);
if (!existItem) {
acc.push({ name: cur, count: 1 });
} else {
existItem.count++;
}
return acc;
}, []);
console.log(arrFinal);
标签:count,acc,initialValue,cur,reduce,TS,name
From: https://www.cnblogs.com/his365/p/16986440.html