如何将指定结构的对象数组转换为合并后的单一对象?
解决方案:将对象数组转换为单个合并对象
当然可以实现,以下是几种常用的JavaScript方法:
首先先修正你初始数组的语法错误(原代码缺少闭合括号和逗号),正确的初始数组应该是:
[ { albert: { title: 'Forecast' } }, { andrew: { title: 'Forecast2' } } ]
方法1:使用Object.assign()
这个方法可以将多个对象的属性合并到目标对象中:
const arr = [ { albert: { title: 'Forecast' } }, { andrew: { title: 'Forecast2' } } ]; const mergedObj = Object.assign({}, ...arr); console.log(mergedObj);
方法2:使用扩展运算符...
通过展开数组中每个对象的属性,合并到新对象里:
const arr = [ { albert: { title: 'Forecast' } }, { andrew: { title: 'Forecast2' } } ]; // 数组长度固定时直接展开每个元素 const mergedObj = { ...arr[0], ...arr[1] };
方法3:使用Array.reduce()
通过遍历数组,逐步将每个对象的属性合并到累加器对象中(适合数组长度不确定的场景):
const arr = [ { albert: { title: 'Forecast' } }, { andrew: { title: 'Forecast2' } } ]; const mergedObj = arr.reduce((acc, current) => { return { ...acc, ...current }; }, {}); console.log(mergedObj);
以上三种方法最终都会得到你预期的结果:
{ albert: { title: 'Forecast' }, andrew: { title: 'Forecast2' } }
内容的提问来源于stack exchange,提问作者user10900615
相关产品推荐
相关产品推荐

