javascript - 如何将javascript数组转换为特定的对象列表
问题描述
我有一个像这样的数组:
[
{ "empName": "Sushant", "departments": ["HR","DEV"] },
{ "empName": "Prashant", "departments": ["HR","MNGT"] }
];
我想将此数组转换为:
[
{ "Sushant": "HR", "Prashant":"HR" },
{ "Sushant": "DEV", "Prashant":"MNGT" }
]
我试过 for 循环和Object.values
var data = [
{ "empName": "Sushant", "departments": ["HR","DEV"] },
{ "empName": "Prashant", "departments": ["HR","MNGT"] }
];
for (var i = 0; i < data.length; i++) {
var obj = Object.values(data[i]);
console.log(obj)
}
解决方案
您可以使用 reduce 循环并在执行过程中添加到正确索引处的对象。就像是:
let arr = [{ "empName": "Sushant", "departments": ["HR","DEV"] },{ "empName": "Prashant", "departments": ["HR","MNGT"] }];
let a = arr.reduce((arr, {empName, departments}) => {
departments.forEach((dept, i) => {
arr[i] = Object.assign({[empName]: dept}, arr[i])
})
return arr
}, [])
console.log(a)
推荐阅读
- sed - 用 sed 替换第一个单词,保持空格对齐
- angular - Angular如何在RouterLinkActive上将所有链接设置为不同的颜色
- django - Django 在 values_list 中检索 get_foo_value 并注释查询
- jmeter - 命令行上的 Jmeter 总结报告
- javascript - 表单提交时未执行 Jquery 函数
- apache-spark - 基于具有连续值 Spark 数据框的现有列添加新列
- python - 有没有办法转换一个 numpy 数组或 pytorch 张量?
- node.js - Fastify 无法在 Docker / Kubernetes 上运行
- python - Interactive Brokers python API - 将 ReportsFinSummary 转换为 pandas
- delphi - Indy IdFTP 在活动连接上失败