如何在JavaScript中根据值动态创建对象属性?
如何将对象数组转换为指定格式的键值对对象?
当然可以实现,这里提供几种简洁的方法:
方法1:使用Array.reduce()(推荐)
这是处理这类数组转对象场景最常用的方式,通过累加器逐步构建目标对象:
const values = [{name: 'name1', index: 1}, {name: 'name2', index: 2}, {name: 'name3', index: 3}]; const result = values.reduce((accumulator, currentItem) => { accumulator[currentItem.name] = currentItem.index; return accumulator; }, {}); console.log(result); // 输出:{ name1: 1, name2: 2, name3: 3 }
方法2:使用Array.forEach()
如果觉得reduce逻辑不够直观,也可以用forEach遍历数组,手动填充目标对象:
const values = [{name: 'name1', index: 1}, {name: 'name2', index: 2}, {name: 'name3', index: 3}]; const result = {}; values.forEach(item => { result[item.name] = item.index; }); console.log(result); // 输出:{ name1: 1, name2: 2, name3: 3 }
说明
两种方法的核心逻辑一致:遍历数组中的每个对象,将对象的name属性作为新对象的键,index属性作为对应的值,最终得到你需要的格式。
内容的提问来源于stack exchange,提问作者Cronos
相关产品推荐
相关产品推荐

