我有一个对象数组,我想将其转换为对象,键作为对象键的值数组,值作为对象值的数组。
假设我有一个这样的数组
let arr = [
{name: "abcd", value: "xyz"},
{name: "pqr", value: "uvw"},
....
]
我想像这样从这个数组创建一个对象。
obj = {
abcd: "xyz",
pqr: "uvw",
...
}
我想获取键和值的值并使用它们来创建一个新对象。有没有办法做到这一点。
答案 0 :(得分:2)
试试这个:
let arr = [
{name: "abcd", value: "xyz"},
{name: "pqr", value: "uvw"}
]
const result = {}
arr.forEach((element) => {
result[element.name] = element.value
})
console.log(result)
答案 1 :(得分:1)
我认为您可以通过两种主要不同的方式轻松实现这一目标:
let arr = [
{name: "abcd", value: "xyz"},
{name: "pqr", value: "uvw"},
// ...
];
obj = arr.reduce((a,c) => (a[c.name] = c.value, a), {});
console.log(obj);
let arr = [
{name: "abcd", value: "xyz"},
{name: "pqr", value: "uvw"},
// ...
];
obj = Object.fromEntries(arr.map(e => Object.values(e)));
console.log(obj);
答案 2 :(得分:0)
您可以使用 reduce
轻松实现这一目标。 reduce
使用聚合器函数并需要初始值。您可以将初始值作为空对象提供,并提供如下所述的聚合器函数:
const arr = [
{name: "abcd", value: "xyz"},
{name: "pqr", value: "uvw"}
];
const result = arr.reduce((a, x) => {
return {
...a,
[x.name]:x.value
}
}, {});
console.log(result);