Chúng ta có một mảng các số hoặc chuỗi ký tự chứa một số mục lặp lại. Nhiệm vụ là viết một hàm nhận vào một số nguyên dương n và trả về một mảng con chứa tất cả các phần tử xuất hiện nhiều hơn hoặc bằng n lần.
Chúng ta sẽ sử dụng Map() để đếm tần suất xuất hiện của các phần tử, sau đó trả về các phần tử vượt quá số lần chỉ định. Dưới đây là mã:
Ví dụ
const arr = [34, 6, 34, 8, 54, 7, 87, 23, 34, 6, 21, 6, 23, 4, 23]; const moreThan = (arr, num) => { const creds = arr.reduce((acc, val) => { let { map, res } = acc; const count = map.get(val); if(!count && typeof count !== 'number'){ map.set(val, 1); }else if(num - count <= 1){ res.push(val); } else { map.set(val, count+1); }; return {map, res}; }, { map: new Map(), res: [] }); return creds.res; }; console.log(moreThan(arr, 3));Kết quả
Đầu ra trong console sẽ là:
[34, 6, 23]