javascript - typescript 过滤器数组基于来自另一个数组的值

标签 javascript arrays array-filter

这个问题已经被问过很多次了,但我无法让它工作。
我有两个数组,第一个是:

 first= [
      {
        id:1, descrizione: "Oggetto 1", 
        codiceAzienda: "Codice 1",
        dataInserimento:"01-01-2019",
        dataAggiornamento: "01-01-2019"
      },
      {
        id:2, descrizione: "Oggetto 2", 
        codiceAzienda: "Codice 2",
        dataInserimento:"01-01-2019",
        dataAggiornamento: "01-01-2019"
      },
      {
        id:3, descrizione: "Oggetto 3", 
        codiceAzienda: "Codice 3",
        dataInserimento:"01-01-2019",
        dataAggiornamento: "01-01-2019"
      },
      {
        id:4, descrizione: "Oggetto 4", 
        codiceAzienda: "Codice 4",
        dataInserimento:"01-01-2019",
        dataAggiornamento: "01-01-2019"
      },
      {
        id:5, descrizione: "Oggetto 5", 
        codiceAzienda: "Codice 5",
        dataInserimento:"01-01-2019",
        dataAggiornamento: "01-01-2019"
      }
    ]

第二个是这样的:

second = [
          {
            id:1, descrizione: "Oggetto 1"
          },
          {
            id:3, descrizione: "Oggetto 3"
          }
        ]

我想要实现的是拥有一个数组,其中仅包含第一个对象的 id 等于第二个对象之一的对象。所以结果是:

final= [
          {
            id:1, descrizione: "Oggetto 1", 
            codiceAzienda: "Codice 1",
            dataInserimento:"01-01-2019",
            dataAggiornamento: "01-01-2019"
          },
          {
            id:3, descrizione: "Oggetto 3", 
            codiceAzienda: "Codice 3",
            dataInserimento:"01-01-2019",
            dataAggiornamento: "01-01-2019"
          }
        ]

我试过这样做:

final= first.filter(ogg => second.map(y => y.id).includes(ogg.id));

但结果我得到了第一个数组的所有对象。我也尝试过 array.some():

final= first.filter(ogg => second.some(id => ogg.id == id));

在这种情况下,最终数组为空。
Example of the second case

最佳答案

这会起作用:

const final = first.filter(x => second.find(y => y.id === x.id))

你可以看到这个工作 here .

关于javascript - typescript 过滤器数组基于来自另一个数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56754460/

相关文章:

javascript - 如何创建类似滚动 UI 的 Google Plus?

arrays - 追加到结构内的结构数组

php - 在数组的一行上递增单元格

php - 对象上下文中的 Array_filter,带有私有(private)回调

javascript - 如何重播通过添加带有过渡的类触发的动画?

javascript - 显示数组的整个键/值

javascript - 使用其名称/值从数组中删除项目

javascript - 在 js 对象数组中搜索值

PHP array_filter,如何在回调中获取key?

orm - 如何在 ColdFusion 中对内存中的 ORM 对象数组进行排序和过滤?