【发布时间】:2022-01-26 15:11:34
【问题描述】:
我正在尝试使用数组的函数输入和回调创建一个对象。
它没有按预期工作
function arrToObj(array, callback) {
return array.reduce((acc, currStr) => {
return acc[currStr] = callback(currStr)
}, {})
}
const arrOfStrings = ['str1', 'str2'];
const capitalize = str => str.toUpperCase();
console.log(arrToObj(arrOfStrings, capitalize)); // expecting: {str1 : STR1, str2 : STR2}
我收到一个错误:第 4 行的类型错误:无法在字符串“STR1”上创建属性“str2”
我觉得在 reduce 中我从根本上错过了一些东西。 我很感激任何能进一步加深我的知识的见解。
【问题讨论】:
-
看起来您想返回整个
acc对象,而不是您刚刚分配的属性的值
标签: javascript arrays object reduce higher-order-functions