js 基础总结(常用的反转)
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 基础总结(常用的反转)相关推荐
- [Vue.js] 基础 -- Vue常用特性
Vue常用特性 常用特性概览 表单操作 自定义指令 计算属性 过滤器 侦听器 生命周期 表单操作 基于Vue的表单操作 Input 单行文本 textarea 多行文本 select 下拉多选 rad ...
- 前端-JS基础之常用内置对象
定时器 setTimeout() 用来指定某个函数或字符串在指定的毫秒数之后执行 只执行一次 clearTimeout() 清除定时器 /*setTimeout() 有两个参数1.执行体 注意:函数传 ...
- js基础-字符串常用属性合集
/* * * 实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法 * 静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调 ...
- JS基础9-BOM常用对象(window和history)
一.简介 BOM对象,通常称为浏览器对象模型(Brower Object Model),它是运行在浏览器中的,所以提供了一系列对象用于和浏览器窗口进行交互,这些对象主要包括window.documen ...
- 刷算法题常用的 JS 基础扫盲
大厂技术 高级前端 Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 介绍 此篇属于前端算法入门系列的第一篇,主要介绍常用的数组方法.字符串方法.遍历方法.高阶函 ...
- 分享一些常用的 JS 基础面试题
介绍 此篇属于前端算法入门系列的第一篇,主要介绍常用的数组方法.字符串方法.遍历方法.高阶函数.正则表达式以及相关数学知识. 前端算法入门一:刷算法题常用的JS基础扫盲[1] 前端算法入门二:时间空间 ...
- 自学JavaScript第一天- JS 基础
自学JavaScript第一天- JS 基础 JS 写在哪里 注释 行内 js 内部 js 外部 js JS 基础语法 语句 大小写 代码块 折行 变量 声明 var .let.const 及作用域 ...
- Vue.js 基础语法 入门语句 Vue学习笔记 v-model 双向数据绑定
Vue.js 基础语法,入门语句,Vue学习笔记 学习网站:https://www.bilibili.com/video/BV15741177Eh vue 的体验 响应式:数据一旦改变,视图就会响应改 ...
- 2019年JS基础面试题
#JS基础 ###1.javascript的typeof返回哪些数据类型 string number array object function Boolean undefined 数组(Array) ...
- HTML/css/js 基础笔记
网站的建站流程 页面图例 网页的结构 WEB标准 WEB标准是网页制作的标准,它不是一个标准,它是根据网页的不同组成部分生成的一系列标准.这些标准大部分由W3C起草发布,也有部分标准由ECMA起草发布 ...
最新文章
- python入门(三)-- 基本运算符
- Spring Boot项目整合Retrofit最佳实践,最优雅的HTTP客户端工具!
- SAP Hybris使用recipe进行安装时,是如何执行ant命令的?
- IROS 2017上,这些厂商将会给我们展示什么样的黑科技?
- java 占位符_Java重要知识点
- 5. http://kb.cnblogs.com/page/90838/
- 基于HTML5的电子病历编辑方法及系统与流程
- the JDBC Driver has been forcibly unregistered;tomcat总是memory leak问题 ,为了防止内存泄漏,jdbc驱动程序已强制取消注册
- word页面顺序倒过来_word怎么把顺序颠倒
- 服务器上可以监控虚拟机操作吗,使用Vmware免费虚拟机监控程序的利弊
- 支付宝新农合缴费显示服务器,支付宝新农合缴费怎么交
- php做照片墙,照片墙作业练习
- Logstash:Grok filter 入门
- Matlab 2020a 调用usb3.0摄像头实例
- 五步看平台,选好安全的MT4交易外汇平台
- OTA--卡刷全包、差分升级包制作、分析(代码摘自Google)---2
- 基于java jsp的酒店餐饮管理系统
- 每日好课分享【精品课程】 每日好课分享
- PMP项目管理、20种常用质量管理工具
- mybatis_plus插件——生成器
热门文章
- vuejs之Vue Devtools
- 实验12:Problem A: 你会定义类吗?
- C C++ 文件输入与输出
- java-环境变量的配置
- 关于人工智能的实现(猜测)
- JMP M16:64
- Bulma - 基于 Flexbox 的现代化的 CSS 框架
- 干了这杯可乐!Gulp 上手指南
- WCF调试异常信息:找不到类型“”,在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHosting...
- 人性化的Ruby计数取值