Javascript 基于另一个数组的值的Typescript筛选器数组

Javascript 基于另一个数组的值的Typescript筛选器数组,javascript,arrays,typescript,array-filter,Javascript,Arrays,Typescript,Array Filter,这个问题已经被问了很多次,但我无法让它工作。 我有两个阵列,第一个是: first= [ { id:1, descrizione: "Oggetto 1", codiceAzienda: "Codice 1", dataInserimento:"01-01-2019", dataAggiornamento: "01-01-2019" }, { id:2, descrizione

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

 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等于第二个对象的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));
但结果是我得到了第一个数组的所有对象。我还尝试了
数组。some()

在这种情况下,最后一个数组为空。

这将起作用:

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

您可以看到它正在工作。

嗨,它不工作了。。。它不过滤对象,最终的数组包含来自first@Dseaster查看示例中的console选项卡。这就是你在问题中要求的结果。是的,我看到了,但是如果我在代码中写它,它就不起作用了。我不明白为什么我会认为这个答案是正确的,因为它起作用了,尽管我发现我的问题是其他的,所以我的解决方案也是正确的。但是不承认你的努力/时间是不公平的,所以非常感谢你。
const final = first.filter(x => second.find(y => y.id === x.id))