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

Xuất hiện nhiều nhất trong mảng hoặc chọn đầu tiên trong JavaScript


Chúng ta cần viết một hàm JavaScript nhận một mảng các giá trị nguyên thủy. Hàm sẽ trả về giá trị xuất hiện nhiều nhất trong mảng, và nếu có sự bằng nhau về số lần xuất hiện, chúng ta nên trả về giá trị được chọn đầu tiên trong các giá trị bằng nhau đó.

const arr = ['25', '50', 'a', 'a', 'b', 'c']

Trong trường hợp này, chúng ta nên trả về 'a'

const arr = ['75', '100', 'a', 'b', 'b', 'a']

Trong trường hợp này, tôi cũng nên nhận được 'a'

Ví dụ

Mã thực hiện:

const arr = ['25', '50', 'a', 'a', 'b', 'c'];
const arr1 = ['75', '100', 'a', 'b', 'b', 'a'];
const getMostFrequentValue = (arr = []) => {
  let count = 0, ind = -1;
  arr.forEach((el, i) => {
    this[el] = this[el] || { count: 0, ind: i };
    this[el].count++;
    if (this[el].count > count) {
      count = this[el].count;
      ind = this[el].ind;
      return;
    }
    if (this[el].count === count && this[el].ind < ind) {
      ind = this[el].ind;
    }
  }, Object.create(null));
  return arr[ind];
};
console.log(getMostFrequentValue(arr));
console.log(getMostFrequentValue(arr1));

Kết quả

Kết quả trong console:

a a