กล่าวกันว่าอาร์เรย์เป็นอาร์เรย์พิเศษหากมีจำนวนเต็มบวกอยู่ เช่น มีองค์ประกอบ 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