引子
Javascript数组详解。
了解Array.prototype.reduce
我们在原程序中,利用Array.forEach去实现了一个累加,ChatGPT优化成了Array.prototype.reduce。相对于Array.forEach,Array.prototype.reduce可能很多人用的不多,接下来我们稍微解释下。
Array.prototype.reduce((t, v, i, a) => {
}, initValue)
参数:
callback:回调函数(必选)
initValue:初始值(可选)
回调函数参数:
total(t):累计器完成计算的返回值(必选)
value(v):当前元素(必选)
index(i):当前元素的索引(可选)
array(a):当前元素所属的数组对象(可选)
使用场合
给大家列举几个场合,大家自行学习体会。
// 累加累乘
function acc(type, ...vals) {
if (type === 'add') {
return vals.reduce((t, v) => t + v, 0);
} else if (type === 'multiply') {
return vals.reduce((t, v) => t * v, 1);
}
}
let a = acc('add', 1, 2,