博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery数组(排序)
阅读量:5165 次
发布时间:2019-06-13

本文共 1074 字,大约阅读时间需要 3 分钟。

HTML:

1 

字符串数组排序前

2
3

排序后

4

jquery:

var animals = ['dog','cat','tiger','pig','bird'];$('#show5').html(animals.join('
')); animals = animals.sort();$('#show6').html(animals.join('
'));

显示结果:

字符串数组排序前dogcattigerpigbird排序后birdcatdogpigtiger

如果数组换成了数值数组呢?结果会什么怎么样的?

如下:

HTML:

数值数组排序前

排序后

jquery:

ar nums = ['12','2','5','36','4'];$('#show7').html(nums.join('
')); nums = nums.sort();$('#show8').html(nums.join('
'));

显示结果:

数值数组排序前1225364排序后1223645

很明显,数值数组最后的排序结果不是我们想要的。这是为什么呢?

因为sort()方法排序,是基于ASCII值进行排序的。故它会认为36小于4(因为3的ASCII值小于4的ASCII值)。所以要对排序的sort()方法定义一个比较函数:

jquery:

ar nums = ['12','2','5','36','4'];$('#show7').html(nums.join('
'));//定义了sort的比较函数nums = nums.sort(function(a,b){return a-b;});$('#show8').html(nums.join('
'));

显示结果:

数值数组排序前1225364排序后2451236

这才是我想要的结果!

知识点:

1,sort(function(a,b){return a-b;})对传入的一对值进行比较,然后返回的的值为:小于0,大于0,等于0;(大于0交换位置,反之则不)

  * 当小于0时,说明b>a,故b的排序靠后(即不变).

  * 当大于0时,说明a>b,故a的排序靠后.

  * 当等于0时,说明a=b,故不改变排序.

如果对数值数组的值进行降序排序。那么只要把返回的值改为b-a!

个人觉得这个方法包含了排序算法的实现过程

转载于:https://www.cnblogs.com/soundcode/p/5155061.html

你可能感兴趣的文章
注解小结
查看>>
201421410014蒋佳奇
查看>>
Xcode5和ObjC新特性
查看>>
CSS属性值currentColor
查看>>
Real-Time Rendering 笔记
查看>>
多路复用
查看>>
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
【UVA】434-Matty's Blocks
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
查看>>
Day03:Selenium,BeautifulSoup4
查看>>
awk变量
查看>>