เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็มเป็นอาร์กิวเมนต์เดียว ฟังก์ชันต้องตรวจสอบว่ามีจำนวนเต็มในอาร์เรย์ที่มีความถี่ (frequency) เท่ากับค่าของมันเองหรือไม่
ถ้ามีจำนวนเต็มอย่างน้อยหนึ่งตัวที่ตรงตามเงื่อนไข ให้คืนค่าตัวเลขนั้น มิฉะนั้นคืนค่า -1
ตัวอย่าง
ถ้าอาร์เรย์นำเข้าคือ:
const arr = [3, 4, 3, 8, 4, 9, 7, 4, 2, 4];
ผลลัพธ์ควรเป็น:
const output = 4;
ตัวอย่างโค้ด
const arr = [3, 4, 3, 8, 4, 9, 7, 4, 2, 4];
const checkValueFrequency = (arr = []) => {
const map = {};
for(let i = 0; i < arr.length; i++) {
const el = arr[i];
map[el] = (map[el] || 0) + 1;
}
for(key in map) {
if(+key === map[key]) {
return +key;
}
}
return -1;
};
console.log(checkValueFrequency(arr));
ผลลัพธ์
4