如何将对象数组转换为指定键值结构的JavaScript对象?
数组转指定键值对对象的实现方法
你可以通过以下几种常见的JavaScript方法,将给定的对象数组转换为目标格式的对象:
方法一:使用reduce方法
reduce是处理数组累加转换的常用方法,适合这种逐步构建对象的场景:
const arr = [{name:'bruce', surname: 'wayne'}, {name:'clark', surname:'kent'}]; const result = arr.reduce((acc, curr) => { acc[curr.name] = curr.surname; return acc; }, {}); console.log(result); // 输出:{bruce:'wayne', clark:'kent'}
核心逻辑:以空对象作为初始值,遍历数组时将每个元素的name作为键、surname作为值存入累加器,最终返回构建好的对象。
方法二:使用Object.fromEntries配合map
这种方法更简洁,先将数组元素转换为键值对数组,再直接转为对象:
const arr = [{name:'bruce', surname: 'wayne'}, {name:'clark', surname:'kent'}]; const result = Object.fromEntries(arr.map(item => [item.name, item.surname])); console.log(result); // 输出:{bruce:'wayne', clark:'kent'}
核心逻辑:map将每个对象映射为[键, 值]格式的数组,Object.fromEntries负责把二维键值对数组转换为普通对象。
方法三:使用forEach遍历构建
如果需要更直观的遍历逻辑,可以用forEach手动构建对象:
const arr = [{name:'bruce', surname: 'wayne'}, {name:'clark', surname:'kent'}]; const result = {}; arr.forEach(item => { result[item.name] = item.surname; }); console.log(result); // 输出:{bruce:'wayne', clark:'kent'}
核心逻辑:初始化空对象后,遍历数组的每个元素,直接为对象添加对应的键值对。
内容的提问来源于stack exchange,提问作者raman
相关产品推荐
相关产品推荐

