Chúng ta sẽ nhận được một mảng số hoặc chuỗi chứa các mục trùng lặp, nhiệm vụ là trả về tần suất xuất hiện của mỗi phần tử trong mảng.
Việc trả về một đối tượng với phần tử làm khóa và tần suất làm giá trị là lý tưởng cho tình huống này.
Chúng ta sẽ lặp qua mảng bằng vòng lặp forEach() và tăng số đếm của các phần tử trong đối tượng nếu đã tồn tại, ngược lại tạo thuộc tính mới cho phần tử đó.
Cuối cùng, trả về đối tượng đó.
Toàn bộ mã cho vấn đề này:
const arr = [2,5,7,8,5,3,5,7,8,5,3,4,2,4,2,1,6,8,6]; const getFrequency = (array) => { const map = {}; array.forEach(item => { if(map[item]){ map[item]++; }else{ map[item] = 1; } }); return map; }; console.log(getFrequency(arr));Kết quả đầu ra trong console:
{ '1': 1, '2': 3, '3': 2, '4': 2, '5': 4, '6': 2, '7': 2, '8': 3 }