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

Nhận mục lặp lại tốt nhất trong JavaScript mảng

Chúng ta có một mảng các ký tự Số / Chuỗi chứa một số giá trị (một số là lặp lại cũng được). Công việc của chúng ta là viết một hàm trả về phần tử từ mảng xuất hiện với số lần lớn nhất trong mảng.

Ví dụ - nếu mảng đầu vào là -

const input = ['a', 'v', 'k', 'f', 'a', 'f', 's', 'd', 'd', 'f', 'a', 'j',
'a'];

Sau đó, đầu ra phải là -

'a'

bởi vì 'a' được lặp lại với số lần tối đa

Do đó, hãy viết mã cho việc này. Chúng tôi sẽ sử dụng Map () để theo dõi tất cả các phần tử weencounter và số lượng của chúng, và cuối cùng trả về phần tử có số lượng tối đa như thế này -

Ví dụ

const input = ['m', 'a', 'v', 'k', 'f', 'a', 'f', 's', 'd', 'd', 'f', 'a',
'j', 'a'];
const findMaximum = arr => {
   const map = arr.reduce((acc, val) => {
      let count = acc.get(val);
      if(count){
         acc.set(val, ++count);
      } else {
         acc.set(val, 1);
      };
      return acc;
   }, new Map());
   return Array.from(map).reduce((acc, val) => {
      if(val[1] > acc[1]){
         return val;
      };
      return acc;
   }, [0, 0])[0];
};
console.log(findMaximum(input));

Đầu ra

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

a