• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > 数组Array的排序sort方法

数组Array的排序sort方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了array.sort方法,array.sort,c array.sort,java array.sort,js array sort等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

JavaScript中的Array对象有自己的排序方法sort(),对数组中的数据项进行排序,但是有时候排序结果不尽如人意,比如

var arr = [12, 1, 2, 21, 3];
arr.sort();
alert(arr);   得到的结果为 1,12,2,21,3

</div>

这是为什么呢?因为JavaScript中的排序默认按照ascii字符代码进行排序,也就是说,数字也是按照它们的字符串形式排序的。

var strArr = ['a', '2', 'a2', '2a', 'b', '3'];
alert(strArr.sort());

</div>

这个得到什么结果呢? 2,2a,3,a,a2,b


因为 数字的ascii码比字母的小,所以数字排在前面,字母排在后面。

如果想继续让上面的数组arr按照数字进行排序,怎么处理呢?

JavaScript给我们提供了一个入口,可以给sort() 方法传递一个参数,即比较函数,来告诉排序算法值与值之间是大于、小于还是等于关系。

比较函数是有着特定算法的函数。

function compare_fn(value1, value2) {
 if (value1 < value2) {
 return -1;
 } else if (value1 > value2) {
 return 1;
 } else {
 return 0;
 }
}
</div>

将比较函数 compare_fn 传递给sort,再进行排序,然后输出

arr.sort(compare_fn);
alert(arr);  得到 1, 2, 3, 12, 21

</div>

JavaScript中Array对象的sort方法返回值的定义为

负值 : 如果所传递的第一个参数比第二个参数小

零 : 两个值相等

正值 : 如果第一个参数比第二个参数大


上面的比较函数还可以简写为

function compare_fn(value1, value2) {
 return value1 - value2;
}
</div>

这个比较的为升序排列


如果想降序排列,直接改变上面的返回值的符号就可以了,给所有返回均取反。

对简写的比较函数就是

function compare_fn(value1, value2) {
 return -(value1 - value2);
}   

</div>

即

function compare_fn(value1, value2) {
 return value2 - value1;
}
</div>

简单的记法就是:顺序升;逆序降。

以上这篇数组Array的排序sort方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 数组Array的排序sort方法

相关文章

  • 2017-05-11easyui-datagrid特殊字符不能显示的处理方法
  • 2017-05-11JS实现的简单拖拽功能示例
  • 2017-05-11微信小程序 this和that详解及简单实例
  • 2017-05-11jquery easyui dataGrid动态改变排序字段名的方法
  • 2017-05-11webpack入门必知必会
  • 2017-05-11jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
  • 2017-05-11通过npm引用的vue组件使用详解
  • 2017-05-11js实现滑动到页面底部自动加载更多功能
  • 2017-05-11原生JavaScript实现AJAX、JSONP
  • 2017-05-11JS 组件系统之 bootstrap treegrid 组件封装过程

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Ajax基础知识详解
    • jQuery实现的简单排序功能示例【冒泡排序】
    • 基于JavaScript实现活动倒计时效果
    • 基于JavaScript实现类名的添加与移除
    • echarts3 使用总结(绘制各种图表,地图)
    • 详解JavaScript中js对象与JSON格式字符串的相互转换
    • jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
    • 基于vue2.0+vuex的日期选择组件功能实现
    • JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
    • 分享bootstrap学习笔记心得(组件及其属性)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有