각각 같은 크기의 많은 하위 배열을 포함하는 parentArray가 있습니다. 각 하위 배열은 키와 값이라는 두 가지 속성을 포함하는 객체의 배열입니다. 하위 배열 내에서 두 개체는 동일한 키를 가질 수 없지만 모든 하위 배열에는 동일한 n 키 쌍이 있음이 확인되었습니다. 여기서 n은 하위 배열의 크기입니다.
우리의 임무는 키를 객체의 키로 사용하고 값이 해당 특정 키에 대한 모든 값을 포함하는 배열인 객체를 준비하는 것입니다.
다음은 샘플 부모 배열입니다 -
const parentArray = [[
{
key: 123,
value: 'India'
}, {
key: 124,
value: 'USA'
}, {
key: 125,
value: 'Japan'
}, {
key: 126,
value: 'Denmark'
}, {
key: 127,
value: 'Austria'
},
], [
{
key: 124,
value: 'Kenya'
}, {
key: 126,
value: 'UK'
}, {
key: 123,
value: 'Germany'
}, {
key: 127,
value: 'Spain'
}, {
key: 125,
value: 'Portugal'
},
]]; 부모 배열과 모든 하위 배열을 하나씩 반복하고 일치하는 키를 찾으면 값 배열로 푸시하고 그렇지 않으면 새 값 배열을 만듭니다.
이에 대한 전체 코드는 다음과 같습니다. -
const parentArray = [[
{
key: 123,
value: 'India'
}, {
key: 124,
value: 'USA'
}, {
key: 125,
value: 'Japan'
}, {
key: 126,
value: 'Denmark'
}, {
key: 127,
value: 'Austria'
},
], [
{
key: 124,
value: 'Kenya'
}, {
key: 126,
value: 'UK'
}, {
key: 123,
value: 'Germany'
}, {
key: 127,
value: 'Spain'
}, {
key: 125,
value: 'Portugal'
},
]];
const map = {};
parentArray.forEach(arr => {
arr.forEach(obj => {
const { key, value } = obj;
if(map[key]){
map[key].push(value);
}else{
map[key] = [value]
}
})
});
console.log(map); 콘솔의 출력은 -
{
'123': [ 'India', 'Germany' ],
'124': [ 'USA', 'Kenya' ],
'125': [ 'Japan', 'Portugal' ],
'126': [ 'Denmark', 'UK' ],
'127': [ 'Austria', 'Spain' ]
}