Javascript中数组sort和reverse用法分析


Posted in Javascript onDecember 30, 2014

本文实例讲述了Javascript中数组sort和reverse用法。分享给大家供大家参考。具体分析如下:

sort() 方法用于对数组的元素进行排序。

reverse()将数组中的元素逆序

首先我们来试试以下这段代码:

var values = [1, 0, 5, 15, 10];

values.reverse();

console.log(values);

输出结果会是什么呢:
[ 10, 15, 5, 0, 1 ]

reverse()也就是很简单的把数组倒过来而已,那么接下来想吐槽的是sort()

var values = [1, 0, 5, 15, 10];

values.sort();

console.log(values);

这段函数输出结果竟然是:
[ 0, 1, 10, 15, 5 ]

这是怎么回事?

实际上,在sort()函数内部会使用toString()转型,而String比较是通过ASCII,所以,我们如果需要排序的话,还是自己写一个sort()比较好。

var values = [1, 0, 5, 15, 10];

function compare(value1, value2) {

    if (value1 < value2) {

        return -1;

    } else if (value1 > value2) {

        return 1;

    } else {

        return 0;

    }

}

values.sort(compare);

console.log(values);

如果调换一下-1和1就能逆向排序啦。

现在的输出结果:
[ 0, 1, 5, 10, 15 ]

更简单的写法是,在compare()内部使用return value2 - value1;

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jQuery中$.fn的用法示例介绍
Nov 05 Javascript
JS的location.href跳出框架打开新页面的方法
Sep 04 Javascript
JS建造者模式基本用法实例分析
Jun 30 Javascript
JavaScript获取对象在页面中位置坐标的方法
Feb 03 Javascript
AngularJs ng-route路由详解及实例代码
Sep 14 Javascript
jQuery实现的浮动层div浏览器居中显示效果
Feb 03 Javascript
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
解决vue 按钮多次点击重复提交数据问题
May 10 Javascript
JavaScript 中的 this 工作原理
Jun 20 Javascript
vue组件从开发到发布的实现步骤
Nov 11 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
Dec 03 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
jQuery中:visible选择器用法实例
Dec 30 #Javascript
JQuery设置时间段下拉选择实例
Dec 30 #Javascript
jQuery中:hidden选择器用法实例
Dec 30 #Javascript
jQuery中:has选择器用法实例
Dec 30 #Javascript
jQuery中:empty选择器用法实例
Dec 30 #Javascript
jQuery中:contains选择器用法实例
Dec 30 #Javascript
解决ueditor jquery javascript 取值问题
Dec 30 #Javascript
You might like
PHP脚本的10个技巧(3)
2006/10/09 PHP
一个显示效果非常不错的PHP错误、异常处理类
2014/03/21 PHP
PHP多文件上传类实例
2015/03/07 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
Python实现字典依据value排序
2016/02/24 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
python中安装django模块的方法
2020/03/12 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
高中生自我鉴定范文
2013/10/30 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
战略合作意向书范本
2014/04/01 职场文书
实习公司领导推荐函
2014/05/21 职场文书
2014会计年终工作总结
2014/12/20 职场文书
英文导游词
2015/02/13 职场文书
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers