JavaScript判断回文数的4种实现方法

作者:闭包旅人

时间:2026-10-23

浏览:482

本文详解JavaScript中判断回文数的4种方法。涵盖字符串转换法(高阶函数、反向拼接、中心对称比较)及纯数学计算法(取模与除法反转)。文章包含完整代码示例,分析负数、尾数为0等特殊情况的处理逻辑,帮助开发者理解不同实现的性能差异与适用场景。

文章目录

回文数定义与边界条件

前言

本文旨在探讨如何判断一个整数是否为回文数。所谓回文数,即正序读取(从左至右)与倒序读取(从右至左)结果完全一致的整数。

具体示例如下:

121,是回文数。 1221, 是回文数。 1234,不是回文数。 -121,也不是回文数。

在编写判断逻辑时,需考虑以下特殊边界情况:

  • 0至9的一位正整数,均属于回文数。
  • 非零且末尾数字为0的整数,均不是回文数。
  • 所有负数均不属于回文数。

基于字符串转换的3种实现

1. 基于字符串转换的方法

1.1 利用高阶函数简化处理

核心思路:首先将数字转换为字符串A,接着将其转换为数组并执行反转操作,最后将反转后的数组重新拼接为字符串B。通过对比字符串A与字符串B是否相等,即可得出判断结果。


/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
  if ( x < 0 ) return false
  let str = '' + x
  return Array.from(str).reverse().join('') === str
};

1.2 逆向遍历字符串数组

核心思路:将数字转换为字符串A,随后从后向前遍历该字符串,将遍历得到的字符依次拼接生成新的字符串B。最后比较字符串A与字符串B是否一致,从而得出结论。


/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
  let str = x + ''
  let newStr = ''
  for(let len = str.length, i = len - 1; i >= 0 ; i--) {
    newStr += str[i]
  }}
  return newStr === str
};

1.3 以中心节点为基准,比对左右首尾字符


/**
 * 以中间数为节点,判断左右两边首尾是否相等
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
  if ( x < 0 || (x !== 0 && x % 10 === 0)) {
    return false
  } else if ( 0 <= x && x < 10) {
    return true
  }
  x = '' + x
  for(let i = 0 ; i < x.length/2; i++) {
    if (x[i] !== x[x.length - i - 1]) {
      return false
    }
  }
  return true
};

基于数值运算的反转判断

2. 基于数值转换的方法

2.1 通过求模获取尾数,除以10获取整数部分

核心思路:首先处理特殊边界情况(包括小于0的数、尾数为0的数、以及小于10的正整数)。随后,将整数进行反转操作,通过比较反转前后的数值是否相等来判断是否为回文整数。

具体反转逻辑:对整数执行求模运算以获取尾数,每次获取尾数后,在原累加值基础上乘以10并加上该尾数,从而逐步构建出反转后的整数。

计算求模次数的方法:将整数不断除以10,利用Math.floor()函数(返回小于或等于给定数字的最大整数)来确定循环次数。


/**
 * 求模得尾数,除10得整数
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
  if ( x < 0 || (x !== 0 && x % 10 === 0)) {
    return false
  } else if ( 0 <= x && x < 10) {
    return true
  }
  let y = x
  let num = 0
  while(x !== 0) {
    num = x % 10 + num * 10
    x = Math.floor(x / 10)
  }
  return y === num
};

上述内容涵盖了回文数的主要判断方法,若存在其他更优方案,欢迎补充。

总结

以上就是本文的全部内容,希望这些JavaScript回文数判断的代码示例能为读者的学习或工作提供有价值的参考,感谢支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章