Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การค้นหาค่าและความถี่ที่เท่ากันในอาร์เรย์ด้วย JavaScript

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