Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

중첩 배열 JavaScript 내부의 그룹 개체

<시간/>

e에 같은 크기의 여러 하위 배열이 포함된 parentArray가 있다고 가정해 보겠습니다. 각 하위 배열은 키와 값이라는 두 가지 속성을 포함하는 객체의 배열입니다. 하위 배열 내에서 두 개체는 동일한 키를 가질 수 없지만 모든 하위 배열은 동일한 쌍의 nkey를 갖는 것으로 확인됩니다. 여기서 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' ]
}