Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Lấy phần tử lặp lại nhiều nhất trong mảng JavaScript

Cho mảng số/chuỗi có phần tử lặp lại. Viết hàm trả về phần tử xuất hiện nhiều nhất.

Ví dụ: ['a','v','k','f','a','f','s','d','d','f','a','j','a'] → 'a' (xuất hiện 4 lần).

Dùng Map() đếm tần suất, sau đó reduce() tìm max:

Ví dụ

const input = ['m', 'a', 'v', 'k', 'f', 'a', 'f', 's', 'd', 'd', 'f', 'a', 'j', 'a'];const findMaximum = arr => {  const map = arr.reduce((acc, val) => {    let count = acc.get(val);    if (count) {      acc.set(val, ++count);    } else {      acc.set(val, 1);    }    return acc;  }, new Map());  return Array.from(map).reduce((acc, val) => {    if (val[1] > acc[1]) return val;    return acc;  }, [0, 0])[0];};console.log(findMaximum(input));

Kết quả

Đầu ra trong console sẽ là:

a