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