Có mảng số với các mục trùng lặp, viết hàm nhận mảng và gom tất cả các mục giống nhau vào một mảng con, trả về mảng mới.
Ví dụ:
// Input: [1, 3, 3, 1]// Output: [[1, 1], [3, 3]]
Sử dụng HashMap theo dõi phần tử đã gặp và vòng lặp for:
Ví dụ
const arr = [1, 3, 3, 1];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 { map[arr[i]] = group.push([arr[i]]) - 1; } } return group;};console.log(groupArray(arr));Kết quả
Đầu ra trong console sẽ là:
[ [ 1, 1 ], [ 3, 3 ] ]