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

อาร์เรย์ JavaScript:ค้นหาองค์ประกอบทั้งหมดที่ปรากฏมากกว่า n ครั้ง


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

ดังนั้น เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −

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

ตัวอย่าง

const arr = [34, 6, 34, 8, 54, 7, 87, 23, 34, 6, 21, 6, 23, 4, 23];
const moreThan = (arr, num) => {
   const creds = arr.reduce((acc, val) => {
      let { map, res } = acc;
      const count = map.get(val);
      if(!count && typeof count !== 'number'){
         map.set(val, 1);
      }else if(num - count <= 1){
         res.push(val);
      } else {
         map.set(val, count+1);
      };
      return {map, res};
   }, {
      map: new Map(),
      res: []
   });
   return creds.res;
};
console.log(moreThan(arr, 3));

ผลลัพธ์

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

[34, 6, 23]