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

Tìm giá trị xuất hiện nhiều nhất trong mảng: JavaScript

Chúng ta cần viết một hàm JavaScript nhận vào một mảng các giá trị có phần tử lặp lại. Hàm trả về mảng chứa các phần tử xuất hiện nhiều nhất (nếu nhiều phần tử cùng tần suất cao nhất thì trả về tất cả).

Ví dụ

const arr1 = ["a", "c", "a", "b", "d", "e", "f"]; 
const arr2 = ["a", "c", "a", "c", "d", "e", "f"]; 
const getMostCommon = arr => { 
  const count = {}; 
  let res = []; 
  arr.forEach(el => { 
    count[el] = (count[el] || 0) + 1; 
  }); 
  res = Object.keys(count).reduce((acc, val, ind) => { 
    if (!ind || count[val] > count[acc[0]]) { 
      return [val]; 
    }; 
    if (count[val] === count[acc[0]]) { 
      acc.push(val); 
    }; 
    return acc; 
  }, []); 
  return res; 
} 
console.log(getMostCommon(arr1)); 
console.log(getMostCommon(arr2));

Kết quả

Kết quả in ra console:

[ 'a' ] [ 'a', 'c' ]