ปัญหา
เราต้องเขียนฟังก์ชัน 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 ข้ามคู่ทับซ้อน