javascript - 在 JavaScript 中将对象的值分配给另一个数组

标签 javascript arrays sorting object javascript-objects

我有一个对象数组和一个原始值数组。我想创建一个新的对象数组,将第一个对象的值映射到后者。

这是对象数组:

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 中匹配的项目,然后再次映射这些项目以仅返回标题。

Array.map docs

Array.filter docs

关于javascript - 在 JavaScript 中将对象的值分配给另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55190653/

相关文章:

swift - 快速排序泛型集

javascript - 如何绕过 Scrapy 中的 cloudflare bot/ddos 保护?

javascript - 如何输出 body 标签上的类

javascript - 类型错误 : Cannot create property 'validator' on string 'abc@gmail.com' at setUpControl

javascript - _.差异但允许重复

python - 如何读取文件,根据指定列排序

javascript - Angular bootstrap 日期选择器和手动日期输入

javascript - 如何从纯javascript获取div的最长高度?

arrays - $firebaseArray 中的 For 循环

algorithm - 如何按价格和速度对 10 x 10 的二维网格中的 100 辆汽车图像进行排序?