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

Lấy phần tử xuất hiện nhiều nhất trong mảng JavaScript

Giả sử chúng ta cần viết một hàm nhận vào một mảng các giá trị chuỗi/số và trả về chỉ số của phần tử xuất hiện nhiều nhất. Chúng ta sẽ duyệt qua mảng để xây dựng một bản đồ tần suất (frequencyMap), sau đó từ bản đồ này trả về chỉ số của phần tử có tần suất cao nhất.

Mã thực hiện như sau:

Ví dụ

const arr1 = [12, 5, 6, 76, 23, 12, 34, 5, 23, 34, 65, 34, 22, 67, 34];
const arr2 = [12, 5, 6, 76, 23, 12, 34, 5, 23, 34];

const mostAppearances = (arr) => {
  const frequencyMap = {};
  arr.forEach(el => {
    if (frequencyMap[el]) {
      frequencyMap[el]++;
    } else {
      frequencyMap[el] = 1;
    }
  });
  let highest, frequency = 0;
  Object.keys(frequencyMap).forEach(key => {
    if (frequencyMap[key] > frequency) {
      highest = parseInt(key, 10);
      frequency = frequencyMap[key];
    }
  });
  return arr.indexOf(highest);
};

console.log(mostAppearances(arr1));
console.log(mostAppearances(arr2));

Kết quả

Đầu ra trong console sẽ là:

6
1