Этот вопрос задавался много раз, но я не могу заставить его работать.
У меня есть два массива, первый:
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"
}
]
Чего я хочу добиться, так это иметь массив, в котором только объекты первого имеют идентификатор, равный одному из объектов второго.Таким образом, результат будет:
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));
В этом случае окончательный массив пуст.
Пример второго случая