javascript - 如何使用循环将对象合并到 Javasript 中的数组中
问题描述
我在javascript中有一个这样的数组,
data = [
{
item: "Banana",
path: "fruit"
},
{
message: "Volvo",
path: "car"
},
{
message: "Cat",
path: "animal"
}
]
我需要像这样创建新对象,
data = {
fruit: "Banana",
car: "Volvo",
animal: "Cat"
}
我试过这个循环,
var newData = [];
data.map(value => {
newData[value.path] = value.message
});
但是这个循环保持这样的返回,
data = [
{
fruit: "Banana"
},
{
car: "Volvo"
},
{
animal: "Cat"
}
]
如何解决这种情况?谢谢
解决方案
你可以使用.reduce
const data = [
{
item: 'Banana',
path: 'fruit'
},
{
message: 'Volvo',
path: 'car'
},
{
message: 'Cat',
path: 'animal'
}
]
const res = data.reduce((acc, el) => ({ ...acc, [el.path]: el.message || el.item }), {})
console.log(res)
或继续您的解决方案,但将数组更改为[]
对象{}
const data = [
{
item: 'Banana',
path: 'fruit'
},
{
message: 'Volvo',
path: 'car'
},
{
message: 'Cat',
path: 'animal'
}
]
var newData = {}
data.map(value => {
newData[value.path] = value.message || value.item
})
console.log(newData)