js中的反转

js中的反转主要有以下三种,数字反转,字符串反转,数组的反转

数组的反转

var arr = [1,2,3,4,5];
arr = arr.reverse();
console.log(arr);结果: [5,4,3,2,1]

字符串的反转

先将字符串转换为数组,然后反转数组,最后将数组转合并为字符串

var str = 'hello world';
str = str.split('').reduce(function(acc, v) {return v + acc
}, '');
console.log(str);结果:'dlrow olleh'

兼容性:

由于reduce()存在兼容性问题,>ie8的浏览器可以很好的使用,但是ie8是个问题。


var str = 'hello world';
str = str.split('').reverse().join('');
console.log(str);

既然有这么有这个兼容性更好的方法,为什么还要用reduce(),我想聪明的你应该很清楚那就是,运行的效率,前者的效率更高。我在自己电脑上跑的实例对比图如下:

数字的反转

数字的反转说起来也很简单,就是将数字转化为字符串然后按照字符串的处理方式处理

var num = 123456789;
num = num.toString().split('').reduce(function(acc, v)) {return v + acc
}, '');console.log(num);
结果:987654321

针对以上3种情况的一个综合解决方案

function objReverse(obj) {if (Object.prototype.toString.call(obj) === '[object String]') {obj = obj.split('');return stringReverse(obj);} else if (Object.prototype.toString.call(obj) === '[object Number]') {obj = obj.toString().split('');return +stringReverse(obj);} else if (Object.prototype.toString.call(obj) === '[object Array]') {return obj.reverse();}function stringReverse (obj) {if(Array.prototype.reduce !== 'undefined') {return obj.reduce(function(acc, v) {return v + acc;}, '')    } else {return obj.reverse().join('');}}
}

欢迎吐槽 :)

js 基础总结(常用的反转)相关推荐

  1. [Vue.js] 基础 -- Vue常用特性

    Vue常用特性 常用特性概览 表单操作 自定义指令 计算属性 过滤器 侦听器 生命周期 表单操作 基于Vue的表单操作 Input 单行文本 textarea 多行文本 select 下拉多选 rad ...

  2. 前端-JS基础之常用内置对象

    定时器 setTimeout() 用来指定某个函数或字符串在指定的毫秒数之后执行 只执行一次 clearTimeout() 清除定时器 /*setTimeout() 有两个参数1.执行体 注意:函数传 ...

  3. js基础-字符串常用属性合集

    /*   *   * 实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法   * 静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调 ...

  4. JS基础9-BOM常用对象(window和history)

    一.简介 BOM对象,通常称为浏览器对象模型(Brower Object Model),它是运行在浏览器中的,所以提供了一系列对象用于和浏览器窗口进行交互,这些对象主要包括window.documen ...

  5. 刷算法题常用的 JS 基础扫盲

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 介绍 此篇属于前端算法入门系列的第一篇,主要介绍常用的数组方法.字符串方法.遍历方法.高阶函 ...

  6. 分享一些常用的 JS 基础面试题

    介绍 此篇属于前端算法入门系列的第一篇,主要介绍常用的数组方法.字符串方法.遍历方法.高阶函数.正则表达式以及相关数学知识. 前端算法入门一:刷算法题常用的JS基础扫盲[1] 前端算法入门二:时间空间 ...

  7. 自学JavaScript第一天- JS 基础

    自学JavaScript第一天- JS 基础 JS 写在哪里 注释 行内 js 内部 js 外部 js JS 基础语法 语句 大小写 代码块 折行 变量 声明 var .let.const 及作用域 ...

  8. Vue.js 基础语法 入门语句 Vue学习笔记 v-model 双向数据绑定

    Vue.js 基础语法,入门语句,Vue学习笔记 学习网站:https://www.bilibili.com/video/BV15741177Eh vue 的体验 响应式:数据一旦改变,视图就会响应改 ...

  9. 2019年JS基础面试题

    #JS基础 ###1.javascript的typeof返回哪些数据类型 string number array object function Boolean undefined 数组(Array) ...

  10. HTML/css/js 基础笔记

    网站的建站流程 页面图例 网页的结构 WEB标准 WEB标准是网页制作的标准,它不是一个标准,它是根据网页的不同组成部分生成的一系列标准.这些标准大部分由W3C起草发布,也有部分标准由ECMA起草发布 ...

最新文章

  1. python入门(三)-- 基本运算符
  2. Spring Boot项目整合Retrofit最佳实践,最优雅的HTTP客户端工具!
  3. SAP Hybris使用recipe进行安装时,是如何执行ant命令的?
  4. IROS 2017上,这些厂商将会给我们展示什么样的黑科技?
  5. java 占位符_Java重要知识点
  6. 5. http://kb.cnblogs.com/page/90838/
  7. 基于HTML5的电子病历编辑方法及系统与流程
  8. the JDBC Driver has been forcibly unregistered;tomcat总是memory leak问题 ,为了防止内存泄漏,jdbc驱动程序已强制取消注册
  9. word页面顺序倒过来_word怎么把顺序颠倒
  10. 服务器上可以监控虚拟机操作吗,使用Vmware免费虚拟机监控程序的利弊
  11. 支付宝新农合缴费显示服务器,支付宝新农合缴费怎么交
  12. php做照片墙,照片墙作业练习
  13. Logstash:Grok filter 入门
  14. Matlab 2020a 调用usb3.0摄像头实例
  15. 五步看平台,选好安全的MT4交易外汇平台
  16. OTA--卡刷全包、差分升级包制作、分析(代码摘自Google)---2
  17. 基于java jsp的酒店餐饮管理系统
  18. 每日好课分享【精品课程】 每日好课分享
  19. PMP项目管理、20种常用质量管理工具
  20. mybatis_plus插件——生成器

热门文章

  1. vuejs之Vue Devtools
  2. 实验12:Problem A: 你会定义类吗?
  3. C C++ 文件输入与输出
  4. java-环境变量的配置
  5. 关于人工智能的实现(猜测)
  6. JMP M16:64
  7. Bulma - 基于 Flexbox 的现代化的 CSS 框架
  8. 干了这杯可乐!Gulp 上手指南
  9. WCF调试异常信息:找不到类型“”,在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHosting...
  10. 人性化的Ruby计数取值