我有一个像这样的数组:
[
{ "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/