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

การนับคู่ในอาร์เรย์ที่มีตัวเลขติดกันใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์จำนวนเต็ม ฟังก์ชันควรคืนค่าจำนวนคู่ติดกัน (contiguous pairs) จากอาร์เรย์ที่มีตัวเลขติดกัน (consecutive numbers) เช่น 1,2 หรือ 5,4

ตัวอย่าง

โค้ดตัวอย่างด้านล่าง:

const arr = [1, 2, 5, 8, -4, -3, 7, 6, 5];
const countPairs = (arr = []) => {
  let count = 0;
  for (var i = 0; i < arr.length; i += 2) {
    if (arr[i] - 1 === arr[i + 1] || arr[i] + 1 === arr[i + 1]) {
      count++;
    }
  }
  return count;
};
console.log(countPairs(arr));

ผลลัพธ์

3

คำอธิบายเพิ่มเติม

โค้ดจับคู่ (0,1), (2,3), (4,5)... i+=2 ตรวจสอบว่า |arr[i] - arr[i+1]| === 1 จากตัวอย่าง: (1,2)✓ (5,8)✗ (-4,-3)✓ (7,6)✓ (5 เหลือเดี่ยว) รวม 3 คู่ หมายเหตุ: i+=2 ข้ามคู่ทับซ้อน