js回文数的4种判断方法示例


Posted in Javascript onJune 04, 2019

前言

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如:

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

一些特殊的情况:

  • 0-9的数字,都可以称为回文。
  • 不等于0,且尾数是0的数字,都不是回文。
  • 负数都不是回文。

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,从后往前循环字符串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 相关文章推荐
js获取图片长和宽度的代码
Nov 24 Javascript
php gethostbyname获取域名ip地址函数详解
Jan 24 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
Oct 19 Javascript
javascript仿php的print_r函数输出json数据
Sep 13 Javascript
将两个div左右并列显示并实现点击标题切换内容
Oct 22 Javascript
javascript函数作用域学习示例(js作用域)
Jan 13 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
打字效果动画的4种实现方法(超简单)
Oct 18 Javascript
详解JSON Web Token 入门教程
Jul 30 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
Vue组件之高德地图地址选择功能的实例代码
Jun 21 Javascript
node.js事件轮询机制原理知识点
Dec 22 Javascript
Vue对象赋值视图不更新问题及解决方法
Jun 03 #Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
Jun 03 #Javascript
JavaScript之数组扁平化详解
Jun 03 #Javascript
JavaScript从原型到原型链深入理解
Jun 03 #Javascript
生产制造追溯系统之再说条码打印
Jun 03 #Javascript
VUE安装使用教程详解
Jun 03 #Javascript
教你完全理解ReentrantLock重入锁
Jun 03 #Javascript
You might like
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
PHP排序算法类实例
2015/06/17 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
js html实现计算器功能
2018/11/13 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
Python 内存管理机制全面分析
2021/01/16 Python
幼教毕业生自我鉴定
2014/01/12 职场文书
《母鸡》教学反思
2014/02/25 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
四十九个javascript小知识实用技巧
2021/11/20 Javascript
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python