如何在JavaScript中将指定结构的列表转换为目标格式的对象?
解决方案:将数组转换为单对象数组
假设你的原始数据是如下格式的数组:
const originalList = [ {value: 50, key: 'A'}, {value: 10, key: 'B'}, {value: 15, key: 'C'}, {value: 20, key: 'D'}, {value: 25, key: 'E'} ];
你需要通过遍历合并的方式,把所有key和value整合到同一个对象中,再将这个对象放入数组,具体实现代码如下:
// 用reduce遍历数组,构建合并后的对象 const mergedObj = originalList.reduce((accumulator, currentItem) => { // 将当前项的key作为属性名,value作为属性值存入累加对象 accumulator[currentItem.key] = currentItem.value; return accumulator; }, {}); // 初始值设为空对象 // 将合并后的对象放入数组,得到目标格式 const data = [mergedObj];
执行后,data的结构就是你需要的:
[ { A: 50, B: 10, C: 15, D: 20, E: 25 } ]
补充说明
reduce是JavaScript数组的内置方法,专门用于遍历数组并累积出一个最终结果,这里我们用它把多个小对象的键值对合并到一个大对象里。- 如果你的原始数组可能存在重复的
key,后面的项会覆盖前面的value,如果需要处理这种情况,可以在循环里添加判断逻辑。
内容的提问来源于stack exchange,提问作者cetak11
相关产品推荐
相关产品推荐

