如何实现arrToObj函数将数组转为以元素为键、回调返回值为值的对象
arrToObj 函数实现方案
实现思路提示
- 第一步先声明一个空对象,用来存储最终要返回的结果
- 遍历传入的数组的每个元素
- 遍历过程中,以当前元素作为对象的键,调用回调函数传入当前元素得到的返回值作为对应键的值,存入空对象
- 遍历结束后返回这个构造完成的对象
完整可运行代码
已修正原测试代码中重复调用arrToObj、括号不匹配的语法错误:
function arrToObj(array, callback) { const res = {} for (const item of array) { res[item] = callback(item) } return res } // 测试代码 const arrOfStrings = ['beer', 'glue']; const capitalize = str => str.toUpperCase(); console.log(arrToObj(arrOfStrings, capitalize)); // 输出: { beer: 'BEER', glue: 'GLUE' }
极简写法(基于数组reduce方法)
如果习惯用高阶函数可以用这个更精简的版本:
function arrToObj(array, callback) { return array.reduce((acc, cur) => { acc[cur] = callback(cur) return acc }, {}) }
内容的提问来源于stack exchange,提问作者Matthew Schwer
相关产品推荐
相关产品推荐

