กล่าวกันว่าอาร์เรย์เป็นอาร์เรย์พิเศษหากมีจำนวนเต็มบวกอยู่ เช่น มีองค์ประกอบ num ที่มากกว่า num ในอาร์เรย์ ตัวเลข num ไม่จำเป็นต้องเป็นของอาร์เรย์ แต่ควรมีอยู่แล้วพี>
ตัวอย่างเช่น − หากอาร์เรย์อินพุตคือ −
const arr = [2, 1, 5, 2, 7, 9];
จากนั้น หากเราตรวจสอบอย่างถูกต้อง เราจะพบว่าสำหรับ num =3 มี 3 องค์ประกอบที่มากกว่า 3 ในอาร์เรย์นี้พอดี
อย่างไรก็ตาม 3 ไม่ได้เป็นส่วนหนึ่งของอาร์เรย์นี้ แต่ถูกต้อง ดังนั้น เราจึงต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของ Numbers
ฟังก์ชันควรคืนค่าตัวเลขที่อยู่รอบๆ ที่เป็นค่าพิเศษ (ถ้าเป็นพิเศษเลย) มิฉะนั้น ฟังก์ชันควรคืนค่าเป็น -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<length; i++){ if(arr[i] >= index){ num++; } }; if(num === index){ return index; }; index++; }; return -1; }; console.log(findSpecialArray(arr));
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
3