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

องค์ประกอบจำนวนไม่ซ้ำกันในอาร์เรย์ใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็มเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว

ฟังก์ชันควรกำหนดว่าจำนวนเต็มทั้งหมดที่มีอยู่ในอาร์เรย์จะปรากฏเป็นจำนวนไม่ซ้ำกันหรือไม่

หากเป็นเช่นนั้น ฟังก์ชันควรคืนค่า จริง เท็จ มิฉะนั้น

ตัวอย่างเช่น −

หากอาร์เรย์อินพุตเป็น −

const arr = [7, 5, 5, 8, 2, 4, 7];

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

const output = false;

เพราะทั้งจำนวนเต็ม 7 และ 5 ปรากฏครั้งละ 2 ครั้ง

ก่อนอื่นเราจะใช้แผนที่แฮชเพื่อจับคู่จำนวนเต็มกับความถี่ (รายการ) จากนั้นใช้แผนที่นั้นเพื่อสร้างชุดที่เก็บความถี่ที่ไม่ซ้ำกัน

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [7, 5, 5, 8, 2, 4, 7];
const uniqueAppearances = (arr = []) => {
   const map = {};
   const set = new Set();
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      map[el] = (map[el] || 0) + 1;
   };
   for(key in map){
      const value = map[key];
      if(set.has(value)){
         return false;
      };
      set.add(value);
   };
   return true;
};
console.log(uniqueAppearances(arr));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

false