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 相关文章推荐
jquery 日期分离成年月日的代码
May 14 Javascript
Javascript中的arguments对象
Jun 20 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
详解vue.js之绑定class和style的示例代码
Aug 24 Javascript
利用Three.js如何实现阴影效果实例代码
Sep 26 Javascript
vue打包后显示空白正确处理方法
Nov 01 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
angular 实时监听input框value值的变化触发函数方法
Aug 31 Javascript
webpack打包多页面的方法
Nov 30 Javascript
vue中使用element组件时事件想要传递其他参数的问题
Sep 18 Javascript
vue的$http的get请求要加上params操作
Nov 12 Javascript
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
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
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
Yii rules常用规则示例
2016/03/15 PHP
实例讲解PHP表单处理
2019/02/15 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
canvas实现钟表效果
2017/02/13 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
用Python实现换行符转换的脚本的教程
2015/04/16 Python
python 多线程实现检测服务器在线情况
2015/11/25 Python
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
python查看模块安装位置的方法
2018/10/16 Python
Python地图绘制实操详解
2019/03/04 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
Python使用type动态创建类操作示例
2020/02/29 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
基于python检查矩阵计算结果
2020/05/21 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
英国家电直销:Appliances Direct
2016/09/22 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
超市开店计划书
2014/04/26 职场文书
电子信息工程自荐信
2014/05/26 职场文书
创先争优一句话承诺
2014/05/29 职场文书
搬迁通知
2015/04/20 职场文书
表扬信范文
2015/05/04 职场文书
介绍信格式样本
2015/05/05 职场文书
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript