Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng các giá trị theo nghĩa đen. Khi đó, hàm của chúng ta sẽ trả về giá trị xuất hiện cao nhất của một giá trị mảng và nếu có một giá trị xuất hiện bằng nhau, chúng ta sẽ trả về giá trị được chọn đầu tiên trong số các lần xuất hiện 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 sẽ nhận được 'a'
Ví dụ
Mã cho điều này sẽ là -
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));
Đầu ra
Và đầu ra trong bảng điều khiển sẽ là -
a a