ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ตัวเลข อาร์เรย์เรียงจากน้อยไปมาก และมีเพียงสมาชิกเดียวที่ไม่อยู่ในลำดับ ฟังก์ชันควรหาและคืนค่าสมาชิกนั้น
ตัวอย่าง
โค้ดตัวอย่างด้านล่าง:
const arr = [1, 2, 3, 4, 17, 5, 6, 7, 8];
const findWrongNumber = (arr = []) => {
for (let i = 0; i < arr.length - 1; i++) {
const el = arr[i];
if (el - arr[i + 1] < 0 && arr[i + 1] - arr[i + 2] > 0) {
return arr[i + 1];
}
}
};
console.log(findWrongNumber(arr));
ผลลัพธ์
17
คำอธิบายเพิ่มเติม
อาร์เรย์เรียงเพิ่ม แต่มี 17 แทรกระหว่าง 4 และ 5 โค้ดตรวจสอบ pattern: arr[i] < arr[i+1] (ปกติ) แต่ arr[i+1] > arr[i+2] (ผิดปกติ) → arr[i+1] คือตัวผิด ควรเพิ่ม bounds check สำหรับ i+2