不知道大家是否用过javascript中的sort方法。相信大家使用的时候都应该知道一点,sort方法排序是按照字符串排序的,排序的方法就是比较字符串大小。
例如:
这样的排序后结果是什么呢?
[1,10,2,20,3,5,8]为什么会如此呢,答案就是其排序方式是依据字符串比较大小。
大家都知道字符串比较大小是从第一个开始比较,如果相同再比较第二个,在1, 2, 3, 10, 5, 8, 20中,很明显看到1和10是首次比较最小的字符串,因此1和10再继续比较,结果当然是1在前,然后比较选择出2和20这两个字符串继续比较,同理。因此可以成功的得到如上结果。
同时说明一下javascript的sort内部实现是冒泡排序方式因此我们可以来模拟他的排序过程:
排序结束
这样就是最终的结果啦!
看到这样的结果很多时候不是我们所需要的,因为我们是对数字排序,而他却给我们做了一个字符串排序,那如何才能得到我们想要的结果1,2,3,5,8,10,20呢?
可以看下w3cschool的例子:
sort方法,他可以接受一个参数,这个参数是一个function,而这个function作用就是比较大小,那sort内部是如何实现接受function作为参数的。
至今没有找到介绍内部实现的文章,比较郁闷。
这样接受function参数我们也可以使用其他灵活的方法实现:
例如:倒序排序,按照你的意愿排序,我们希望使用和排序,
有时候希望使用和排序:10,30,12,50,60,19,24我们希望得到的结果是10(1),12(3),30(3),50(5),24(6),60(6),19(10)
因此这样的sort很适合推广,同样这种接受一个function参数的方法也值得借鉴。
分享到:
相关推荐
JavaScript中数组sort()方法的基本使用与踩坑记录 在日常的代码开发中,关于数组排序的操作可不少,JavaScript 中可以调用 sort 方法对数组进行快速排序。 今天,就数组的 sort 方法来学习一下,避免日后踩坑的...
对于javascript之sort方法的简单思考,方便理解,内附有简单的小案例,方便大家对该函数的理解
javascript-natural-sort, 在Javascript中,排序 thing 演示运行QUnit测试套件简单数字>>> ['10',9,2,'1','4'].sort(naturalSort)['1',2,'4',9,'10']浮点数>>&
语法:arrayObject.sort(sortby);参数sortby可选。规定排序顺序。必须是函数。 sort() 方法用于对数组的元素进行排序。 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照...
javaScript中自定义sort中的比较函数,用于比较字符串长度,数值大小.docx
javascript 中英文资料 汇总 javascript 中英文资料 汇总 javascript 中英文资料 汇总
一、javascript中sort对数据进行排序的原理 sort() 方法对数组的元素做原地的排序,并返回这个数组。 sort 可能不是稳定的。默认按照字符串的Unicode码位点排序; 语法:arr.sort([compareFunction]) 参数 compare...
JavaScript中的循环总结(教辅)JavaScript中的循环总结(教辅)JavaScript中的循环总结(教辅)JavaScript中的循环总结(教辅)JavaScript中的循环总结(教辅)JavaScript中的循环总结(教辅)JavaScript中的循环...
arcgis api for javascript 中文帮助文档和demo,对于应用javascript开发网络地图的朋友帮助甚大
javascript特效javascript特效javascript特效javascript特效javascript特效javascript特效javascript特效javascript特效
运用javascript排序,数组的sort方法
JavaScript中数组的sort()方法主要用于对数组的元素进行排序。其中,sort()方法有一个可选参数。但是,此参数必须是函数。 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编码顺序)对数组中的元素进行...
本文实例分析了javascript中sort()的用法。分享给大家供大家参考。具体分析如下: 函数的语法: arrayObject.sort(sortby) you think this is not the right way but you love it 这里还用到了split函数,目的是...
《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面...
JavaScript 中 doucment 的常用方法
javascript中event详解javascript中event详解javascript中event详解javascript中event详解javascript中event详解javascript中event详解javascript中event详解
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。这篇文章主要介绍了Javascript基础知识盲点总结之函数的相关资料
JavaScript中文学习文档详细讲解了javaScript脚本编写的过程,是初学者的最佳选择
理解javascript中undefined和null的区别