Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm cách nào để nhận các giá trị phổ biến nhất trong mảng:JavaScript?

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng các ký tự có giá trị lặp lại. Hàm của chúng ta sẽ trả về một mảng gồm (các) phần tử phổ biến nhất trong mảng (nếu hai hoặc nhiều phần tử xuất hiện với số lần như nhau thì mảng phải chứa tất cả các phần tử đó).

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

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