เราจำเป็นต้องเขียนฟังก์ชัน 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