Method 1: String Conversion and Reversal
const str = number.toString();
const reversedStr = str.split(”).reverse().join(”);
return str === reversedStr;
}
// Example usage
console.log(isPalindrome(121)); // true
console.log(isPalindrome(123)); // false
console.log(isPalindrome(1331)); // true
Method 2: Using a Loop
function isPalindrome(number) {
const str = number.toString();
const len = str.length;
for (let i = 0; i < len / 2; i++) {
if (str[i] !== str[len – 1 – i]) {
return false;
}
}
return true;
}
// Example usage
console.log(isPalindrome(121)); // true
console.log(isPalindrome(123)); // false
console.log(isPalindrome(1331)); // true
Method 3: Mathematical Approach
This approach avoids string conversion and operates directly on the number.
function isPalindrome(number) {
if (number < 0) return false; // Negative numbers are not palindromes
let reversed = 0;
let original = number;
while (original > 0) {
const digit = original % 10;
reversed = reversed * 10 + digit;
original = Math.floor(original / 10);
}
return number === reversed;
}
// Example usage
console.log(isPalindrome(121)); // true
console.log(isPalindrome(123)); // false
console.log(isPalindrome(1331)); // true
Method 4: Using Recursion
if (start >= end) return true;
if (str[start] !== str[end]) return false;
return isPalindromeHelper(str, start + 1, end – 1);
}
function isPalindrome(number) {
const str = number.toString();
return isPalindromeHelper(str, 0, str.length – 1);
}
// Example usage
console.log(isPalindrome(121)); // true
console.log(isPalindrome(123)); // false
console.log(isPalindrome(1331)); // true
Method 5: Using Regular Expressions
const str = number.toString();
const reversedStr = str.replace(/[W_]/g, ”).split(”).reverse().join(”);
return str === reversedStr;
}
// Example usage
console.log(isPalindrome(121)); // true
console.log(isPalindrome(123)); // false
console.log(isPalindrome(1331)); // true