我有一个对象数组和一个原始值数组。我想创建一个新的对象数组,将第一个对象的值映射到后者。
这是对象数组:
var eventInstances = [
{
id: 1,
title: "Item 1"
},
{
id: 2,
title: "Item 2"
},
{
id: 1,
title: "Item 3"
},
{
id: 3,
title: "Item 4"
},
]
以及原始值数组:
var dates = [1, 2, 3]
我想要映射 eventInstances
的对象到一个新的对象数组,其值为 dateInstances
作为键,其对应于 id
的值在eventInstances
.
结果应该是:
var dateInstances = [
{
id: 1,
instances: [
{
title: "Item 1"
},
{
title: "Item 1"
}
]
},
{
id: 2,
instances: [
{
title: "Item 1"
},
{
title: "Item 1"
}
]
},
{
id: 3,
instances: [
{
title: "Item 2"
}
]
}
];
抱歉,如果这是一个新手问题,我一直在阅读排序方法,但我在这里很茫然。任何提示将不胜感激。谢谢!
最佳答案
此函数将为您提供预期的结果。
dates.map(id=>{
return {id:id,
instances:eventInstances.filter(item =>{
return item.id === id;
})
.map(foundItem => {
return {title: foundItem.title}
})
}});
可能是一种更简单的方法,但实际情况如下。使用 map
迭代日期数组。然后过滤
以查找 eventInstances 中匹配的项目,然后再次映射
这些项目以仅返回标题。
关于javascript - 在 JavaScript 中将对象的值分配给另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55190653/