gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:45:11 24 4
gpt4 key购买 nike

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

 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com