javascript - 如何将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)

关于javascript - 如何将javascript数组转换为特定的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54049115/

相关文章:

javascript - 我应该使用 meteor 包还是复制 js 文件?

javascript - 如何在不匹配特殊字符的情况下匹配 Unicode 特殊字母字符

javascript - 如何在单击时删除 Opera 中的蓝色边框

javascript - 使用一个 HTML slider 移动另一个 slider 上的 handle ,而不使用 JQuery UI

javascript - 如何在 pug 中迭代 map

javascript - 如何编写正则表达式以将密码与规则匹配

javascript - CSS : Overflowing Dynamically Created Content

javascript - 使用 Jest 测试外部 Api 调用(使用 fetch 函数)

javascript - 如何使用 discord bot 发送文件?

javascript - 主干模型的转换/初始化子模型