Computer >> Máy Tính >  >> Lập trình >> Javascript

Kết hợp các mục giống nhau với nhau trong JavaScript

Chúng tôi có một mảng các số có các mục nhập giống hệt nhau. Chúng tôi được yêu cầu viết một hàm nhận trong mảng và nhóm tất cả các mục giống nhau thành một mảng con và trả về mảng mới do đó tạo thành.

Ví dụ:Nếu mảng đầu vào là -

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

// thì đầu ra phải là -

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

Chúng tôi sẽ sử dụng Hashmap để theo dõi các phần tử đã xảy ra và lặp lại trên mảng bằng vòng lặp for.

Do đó, hãy viết mã cho chức năng này -

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

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