交流群:462197261站长百科站长论坛热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
点击这里给我发消息
  • 当前位置:
  • js回文数的4种判断方法示例

    前言

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

    例如:

    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判断回文数详解及实现代码

    广而告之:
    热门推荐:
    asp.net结合Ajax验证用户名是否存在的代码

    1, 使用JavaScript js文件,验证用户名是否存在 复制代码 代码如下: var ajax = function(option) { var request; var createRequest = function() { //var request; if (window.XMLHttpRequest) { request = new XMLHttpRequest(); } else { try { request = new Activ···

    JavaScript简单判断复选框是否选中及取出值的方法

    本文实例讲述了JavaScript简单判断复选框是否选中及取出值的方法。分享给大家供大家参考。具体如下: 这里使用JavaScript 获取复选框的值,有朋友在刚开始利用表单提交数据的时候,一般都会遇到表单中有一个特别的元素——复选框,判断它是否选中以及获取它的值 ,好像跟其它的表···

    PHP中使用数组指针函数操作数组示例

    数组的内部指针是数组内部的组织机制,指向一个数组中的某个元素。默认是指向数组中第一个元素通过移动或改变指针的位置,可以访问数组中的任意元素。对于数组指针的控制PHP提供了以下几个内建函数可以利用。 ★current():取得目前指针位置的内容资料。 ★key():读取目前指针所指···

    Javascript节点关系实例分析

    本文实例分析了Javascript的节点关系。分享给大家供大家参考。具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>节点关系</title> <script t···

    MySQL中数据类型的验证

    CHAR char (M) M字符,长度是M*字符编码长度,M最大255。 验证如下: mysql> create table t1(name char(256)) default charset=utf8; ERROR 1074 (42000): Column length too big for column 'name' (max = 255); use BLOB or TEXT instead mysql> create table t1(n···

    用react-redux实现react组件之间数据共享的方法

    上篇文章写到了redux实现组件数据共享的方法,但是在react中,redux作者提供了一个更优雅简便的模块实现react组件之间数据共享。那就是利用react-redux 利用react-redux实现react组件数据之间数据共享 1.安装react-redux $ npm i --save react-redux 2.从react-redux导入Pro···

    用javascript获取textarea中的光标位置

    对于写javascript写网页编辑器的人来说,获取textarea中的光标位置是一个非常重要的问题,而往往很多人在这个地方不知所措,找不到好的办法。昨天我在网上找到了一段javascript代码,本来不想把原版放在这里的,就是因为太精彩了,怕我给改坏了,所以还是原版放在这里吧···

    织梦DEDECMS系统首页sql调用disucuz2.5内容怎么解决?

    注明:如果你安装在不同的数据库,需要在sql中指定数据库,我这边是jtb,与公司的织梦dedecms不是安装在同库中。  调用图文帖子的方法:  {dede:sql sql="SELECT jtb.pre_forum_threadimage.tid, jtb.pre_forum_threadimage.attachment, jtb.pre_fo···

    JavaScript日期选择功能示例

    本文实例讲述了JavaScript日期选择功能。分享给大家供大家参考,具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <title>javascript日期选择</title> <style type="text/css"> option{···

    mysql 5.7.13 安装配置笔记(Mac os)

    一、MySQL5.7.13安装 到MySQL官网上http://dev.mysql.com/downloads/mysql/,下载mysql可安装dmg版本 mysql-5.7.13-osx10.11-x86_64 .dmg 下载完的文件为:mysql-5.7.13-osx10.11-x86_64 .dmg 点击安装包一步步傻瓜式安装就行。 系统偏好设置的其他里,点击“mysql”的图标 点击S···