这个问题已经被问过很多次了,但我无法让它工作。
我有两个数组,第一个是:
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
最佳答案
关于javascript - typescript 过滤器数组基于来自另一个数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56754460/