나는 이와 같은 두 개의 배열이 있습니다.
array1 = [
{
Name: "BMW car",
id: "BMW",
group: "car",
children: [
{ Name: "320 Mod", id: "320", group: "BMW" },
{ Name: "X3 Mod", id: "X3", group: "BMW" },
{ Name: "X5 Mod", id: "X5", group: "BMW" }
]
}
];
array2 = [
{
id: "BMW",
description: "parent car BMW",
children: [
{ id: "320", description: "parent car BMW, model 320", },
{ id: "X3", description: "parent car BMW model X3", },
{ id: "X5", description: "parent car BMW Model X5", }
]
}
];
결과 배열은 다음과 같아야합니다.
arrayObj = [
{
Name: "BMW car",
id: "BMW",
group: "car",
description: "parent car BMW",
children: [
{ Name: "320 Mod", id: "320", group: "BMW", description: "parent car BMW model 320", },
{ Name: "X3 Mod", id: "X3", group: "BMW", description: "parent car BMW model X3", },
{ Name: "X5 Mod", id: "X5", group: "BMW", description: "parent car BMW model X5", }
]
}
];
아래 코드를 시도했지만 자식 값이 병합되지 않습니다. 누구든지 나를 도울 수 있습니까?
var resultArray = array1.reduce((arr, e) => {
arr.push(Object.assign({}, e, array2.find(a => a.id == e.id)))
return arr;
}, [])
이것을 사용할 수 있습니다
var array1 = [
{
Name: "BMW car",
id: "BMW",
group: "car",
children: [
{ Name: "320 Mod", id: "320", group: "BMW" },
{ Name: "X3 Mod", id: "X3", group: "BMW" },
{ Name: "X5 Mod", id: "X5", group: "BMW" }
]
}
];
var array2 = [
{
id: "BMW",
description: "parent car BMW",
children: [
{ id: "320", description: "parent car BMW, model 320", },
{ id: "X3", description: "parent car BMW model X3", },
{ id: "X5", description: "parent car BMW Model X5", }
]
}
];
var result = array1.map(el1 => {
var el2 = array2.find(el => el1.id === el.id);
return { ...el1, ...el2, children: el1.children.map(child1 => ({ ...child1, ...el2.children.find(child2 => child2.id === child1.id) })) };
});
console.log(result);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다