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

การหาตัวเลขที่ไม่เรียงลำดับเพียงตัวเดียวจากอาร์เรย์ใน JavaScript

ปัญหา

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