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

Nhận mục xuất hiện nhiều lần nhất trong JavaScript mảng

Giả sử, chúng ta bắt buộc phải viết một hàm nhận vào một mảng các ký tự chuỗi / số và trả về chỉ mục của mục xuất hiện trong nhiều lần nhất. Chúng tôi sẽ lặp lại trên thanh và chuẩn bị một Bản đồ tần suất và từ bản đồ đó, chúng tôi sẽ trả về chỉ mục xuất hiện nhiều nhất.

Mã để làm như vậy sẽ là -

Ví dụ

const arr1 = [12, 5, 6, 76, 23, 12, 34, 5, 23, 34, 65, 34, 22, 67, 34];
const arr2 = [12, 5, 6, 76, 23, 12, 34, 5, 23, 34];
const mostAppearances = (arr) => {
   const frequencyMap = {};
   arr.forEach(el => {
      if(frequencyMap[el]){
         frequencyMap[el]++;
      }else{
         frequencyMap[el] = 1;
      };
   });
   let highest, frequency = 0;
   Object.keys(frequencyMap).forEach(key => {
      if(frequencyMap[key] > frequency){
         highest = parseInt(key, 10);
         frequency = frequencyMap[key];
      };
   });
   return arr.indexOf(highest);
};
console.log(mostAppearances(arr1));
console.log(mostAppearances(arr2));

Đầu ra

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

6
1