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

อาร์เรย์พิเศษ (Special Arrays) ใน JavaScript

อาร์เรย์ถูกกล่าวว่าเป็นอาร์เรย์พิเศษ หากมีจำนวนเต็มบวก num ที่ทำให้มีสมาชิก num ตัวที่มากกว่า num ในอาร์เรย์ ตัวเลข num ไม่จำเป็นต้องอยู่ในอาร์เรย์ แค่มีอยู่ก็พอ

เช่น ถ้าอาร์เรย์อินพุตคือ:

const arr = [2, 1, 5, 2, 7, 9];

ถ้าเราตรวจสอบอย่างละเอียด เราจะพบว่า สำหรับ num = 3 มีสมาชิกที่มากกว่า 3 อยู่ในอาร์เรย์นี้ทั้งหมด 3 ตัว แต่ 3 ไม่ได้เป็นส่วนหนึ่งของอาร์เรย์นี้ แต่นัถูกต้อง ดังนั้น เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข ฟังก์ชันควรคืนค่าตัวเลขที่อาร์เรย์เป็นพิเศษรอบตัวมัน (ถ้ามันเป็นพิเศษเลย) มิฉะนั้นฟังก์ชันควรคืนค่า -1

ตัวอย่าง

const arr = [2, 1, 5, 2, 7, 9];
const findSpecialArray = (array = []) => {
  const arr = array.slice().sort((a, b) => a - b);
  let index = 1;
  const { length } = arr;
  while(index <= arr[length-1]){
    let num = 0;
    for(let i=0; i= index){
        num++;
      }
    };
    if(num === index){ return index; };
    index++;
  };
  return -1;
};
console.log(findSpecialArray(arr));

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ดังนี้:

3