Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

รับรายการที่ซ้ำกันมากที่สุดในอาร์เรย์ JavaScript


เรามีอาร์เรย์ของตัวอักษร Number / String ที่มีค่าบางค่า (บางค่าซ้ำกันเช่นกัน) งานของเราคือการเขียนฟังก์ชันที่ส่งคืนองค์ประกอบจากอาร์เรย์ซึ่งปรากฏเป็นจำนวนครั้งมากที่สุดในอาร์เรย์

ตัวอย่างเช่น − หากอาร์เรย์อินพุตเป็น −

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

จากนั้นผลลัพธ์ควรเป็น −

'a'

เพราะ 'a' ซ้ำถึงจำนวนสูงสุด

ดังนั้น มาเขียนโค้ดสำหรับสิ่งนี้กัน เราจะใช้ Map() เพื่อติดตามองค์ประกอบทั้งหมด weencounter และจำนวนของพวกเขา และสุดท้ายส่งคืนองค์ประกอบที่มีจำนวนสูงสุดเช่นนี้ −

ตัวอย่าง

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

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น -

a