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

동일한 항목을 하위 배열로 그룹화 - JavaScript

<시간/>

동일한 항목을 가진 숫자 배열이 있다고 가정해 보겠습니다. 배열을 가져와서 동일한 모든 항목을 하나의 하위 배열로 그룹화하고 이렇게 형성된 새 배열을 반환하는 함수를 작성해야 합니다.

예:입력 배열이 -

인 경우
const arr = [234, 65, 65, 2, 2, 234];

그러면 출력은 다음과 같아야 합니다. -

const output = [[234, 234], [65, 65], [2, 2]];

해시맵을 사용하여 이미 발생한 요소를 추적하고 for 루프를 사용하여 배열을 반복합니다.

예시

다음은 코드입니다 -

const arr = [234, 65, 65, 2, 2, 234];
const groupArray = arr => {
   const map = {};
   const group = [];
   for(let i = 0; i < arr.length; i++){
      if(typeof map[arr[i]] === 'number'){
         group[map[arr[i]]].push(arr[i]);
      }else{
         //the push method returns the new length of array
         //and the index of newly pushed element is length-1
         map[arr[i]] = group.push([arr[i]])-1;
      }
   };
   return group;
}
console.log(groupArray(arr));

출력

이것은 콘솔에 다음과 같은 출력을 생성합니다 -

[ [ 234, 234 ], [ 65, 65 ], [ 2, 2 ] ]