我试图使用传递函数和初始值'Stack‘的.reduce方法,但我一直没有定义。
我在reduce方法中添加了一个console.log,以查看可能出了什么问题,它似乎与累加器有关,累加器不断返回未定义的值,但我不明白为什么。
谢谢你的帮助。
function addingSpace(string1, string2){
let result = string1 + " " + string2;
return result;
}
function combineStr(array, callback, iv){
let result = array.reduce((acc, cv) => {
callback(acc, cv)
}, iv);
return result;
}
let testArr = ['flow', 'is', 'amazing']
console.log(combineStr(testArr, addingSpace, 'Stack')) // 'Stack flow is amazing'
发布于 2022-03-20 16:48:22
为了进一步扩展我的注释,您在Array.prototype.reduce
中使用的回调函数没有返回任何内容,因此默认返回undefined
。
您需要返回值,以便为下一次迭代更新累加器:
return callback(acc, cv);
https://stackoverflow.com/questions/71551630
复制相似问题