所以我试图通过 ID-s ( ID
and AUTOMOBIL
)将 2 个对象数组与此代码合并,我只推送 last array of objects(OPREMA)
。有人知道我怎样才能让他们都在他们应该在的地方?
因此,当ID
在a1
是== 1
我需要所有的OPREMA
在a2
巫AUTOMOBIL
等于1
一起保存它a1
,但与此代码它的唯一可取最后一个。
const a1 = [
{ ID: "2", TIP: "A3", VRSTA: "Limousine", $$hashKey: "object:3" },
{ ID: "1", TIP: "A5", VRSTA: "Coupe", $$hashKey: "object:7" },
];
const a2 = [
{
AUTOMOBIL: "1",
OPREMA: {
ID: "5",
NAZIV_OPREME: "Automatski",
VRSTA_OPREME: "2",
CIJENA: "15000",
OPIS: "Automatski mjenjač",
},
},
{
AUTOMOBIL: "1",
OPREMA: {
ID: "3",
NAZIV_OPREME: "Benzin",
VRSTA_OPREME: "1",
CIJENA: "7000",
OPIS: "Gorivo benzin",
},
},
{
AUTOMOBIL: "1",
OPREMA: {
ID: "19",
NAZIV_OPREME: "1.0",
VRSTA_OPREME: "5",
CIJENA: "7000",
OPIS: "potrosnja 3-6l",
},
},
{
AUTOMOBIL: "1",
OPREMA: {
ID: "11",
NAZIV_OPREME: "Sportback",
VRSTA_OPREME: "3",
CIJENA: "70000",
OPIS: "sportski izgled šasije",
},
},
{
AUTOMOBIL: "1",
OPREMA: {
ID: "8",
NAZIV_OPREME: "Quattro",
VRSTA_OPREME: "4",
CIJENA: "15000",
OPIS: "Pogon na sve kotače",
},
},
];
const a3 = a1.map(t1 => ({ ...t1, ...a2.find(t2 => t2.AUTOMOBIL === t1.ID) }));
//RESULT OF a3
console.log(a3);
在您的问题中,您从未指定将 a2 的元素保存在 a1 元素中的确切方式。我假设您需要它们作为 OPREMA 属性下的数组。您的代码非常接近,但您需要使用过滤器来保留所有匹配的元素,而不是 find。
const a3 = a1.map(t1 => {
const matchingElements = a2.filter(t2 => t2.AUTOMOBIL === t1.ID);
return ({...t1, OPREMA: matchingElements.map(({ OPREMA }) => OPREMA) });
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句