각각 같은 크기의 많은 하위 배열을 포함하는 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' ] }