ตรวจสอบว่าอาร์เรย์อ่านจากหน้าหลังได้เหมือนกัน (Palindrome) โดยเปรียบเทียบค่ากลาง
ตัวอย่างโค้ด
const arr = [1, 5, 7, 4, 15, 4, 7, 5, 1];
const isPalindrome = arr => {
const len = arr.length;
const mid = Math.floor(len / 2);
for (let i = 0; i <= mid; i++) {
if (arr[i] !== arr[len - i - 1]) {
return false;
}
}
return true;
};
console.log(isPalindrome(arr));
ผลลัพธ์
true
วิธีแบบ ES6+ (สั้นกว่า)
const isPalindrome = arr => arr.every((val, i) => val === arr[arr.length - 1 - i]); // หรือ const isPalindrome2 = arr => JSON.stringify(arr) === JSON.stringify([...arr].reverse());
every() หยุดทันทีที่เจอ false (short-circuit) ประหยัดเวลา