目录
Array API - reduce()
语法
参数说明
返回值说明
应用
Array API - reduce()
? ? ? ?const array1 = [1, 2, 3, 4];
? ? ? ?const reducer = (previousValue, currentValue) => previousValue + currentValue;
?
? ? ? ?// 1 + 2 + 3 + 4
? ? ? ?console.log(array1.reduce(reducer));
? ? ? ?// expected output: 10
?
? ? ? ?// 5 + 1 + 2 + 3 + 4
? ? ? ?console.log(array1.reduce(reducer, 5));
? ? ? ?// expected output: 15
语法
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
参数说明
-
callback() 回调函数,
-
initialValue
返回值说明
-
函数累计处理结果 -
最后一次执行 callback() 的返回值
应用 (完善ing)
-
案例一:求和 // 数组求和
let sumArray = [1,2,3,4,5]
let sum = sumArray.reduce((acc,eachItem) => {
?//预期
?console.log('acc的值:' + acc); //总共 输出5次
?return acc + eachItem
},0) -
案例二:统计某一元素出现次数 let amountArray = ["狗曦曦", "狗曦曦", "玉玉", "喵喵"]
let dogAmount = amountArray.reduce((acc, item) => {
?if (item === "狗曦曦") {
? ?console.log("找到狗曦曦了");
? ?acc++;
}
?return acc;
},0) -
案例三:统计所有元素出现次数 //统计所有元素出现个数
let allArray = ["狗曦曦", "狗曦曦", "玉玉", "喵喵"]
let allAmount = amountArray.reduce((acc, item) => {
?if (item in acc) {
? ?acc[item]++;
} else {
? ?acc[item] = 1
}
?return acc
}, {})
/*
? 预期结果
? {
? ? ? "狗曦曦": 2,
? ? ? "玉玉": 1,
? ? ? "喵喵": 1
? }
*/
console.log(allAmount);
|