还原为对象错误:无法创建属性



我正在尝试创建一个具有数组和回调函数输入的对象。

没有按预期工作

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从根本上错过了一些东西。我很感激任何有助于我进一步了解的见解。

问题出在reduce函数中。您最终不会返回acc

function arrToObj(array, callback) {
return array.reduce((acc, currStr) => {
acc[currStr] = callback(currStr);
return acc;
}, {})
}
const arrOfStrings = ['str1', 'str2'];
const capitalize = str => str.toUpperCase();
console.log(arrToObj(arrOfStrings, capitalize)); // expecting: {str1 : STR1, str2 : STR2}

最新更新