javascript - 使用数组中的键值对创建对象
问题描述
有这个输入数组:
const myArray = [{value: "test"}, {value: "abc"}, {value: "xyz"}];
期望的结果是这样的:result = { "value1": "test", "value2": "abc", "value3": "xyz" };
我试过这样做,但它返回一个空对象:{undefined: ""}
const result = myArray.reduce((agg, item) => {
agg[item.key] = item.value;
return agg;
}, {})
有任何想法吗?
解决方案
您可以使用Object.keys读取键的名称并使用array.reduce的第三个参数来获取当前处理的项目的索引。
const myArray = [{value: "test"}, {value: "abc"}, {value: "xyz"}];
//the desired result is this: result = { "value1": "test", "value2": "abc", "value3": "xyz" };
const result = myArray.reduce((agg, item, index) => {
agg[Object.keys(item)[0] + (index + 1)] = item.value;
return agg;
}, {})
console.log(result);
推荐阅读
- javascript - 随浏览器窗口大小变化英雄图像的高度
- google-compute-engine - Google Compute Instance RDP 失败(工作多年后)
- java - Java 程序,它打开一个包含整数的文件,并在输出对话框中打印、计数和显示。(使用 JOptionPane)
- javascript - Socket.io 和 Jquery 带来了不需要的额外数据
- docker - 如何获取其中基于 cgroup(如 docker)的容器的平均负载?
- clojure - 在 Clojure 中调试执行缓慢的函数
- javascript - item.tolowercase 不是 ionic 3 中的函数
- google-apps-script - 根据单元格字体颜色移动行
- php - mysql 选择查询彩票组合
- nsarray - iOS 12 的 NSCoding 问题