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

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

hot3.png

sort()语法:

arrayObject.sort(fn);

参数fn可选,如果为空,则按字母顺序对数组中的元素进行排序,精确地说,是按照字符编码顺序进行排序。So,如果想实现精确排序,应把数组的元素转换成字符串在进行排序。

想按照其他标准排序,则需提供比较函数,没错,是函数,为函数提供两个参数,个人理解就是要排序的其中两个元素。为什么会有这样的猜测,看规则:

function fn (m,n){        if(m
n)            return 1;//大于,返回1        else return 0;//等于,返回0    }

精简后:

function fn (m, n) {    return m-n;}

若 m 小于n, 则返回一个小于0的数值,m 会出现在 n 的前面;

若 m 等于 n, 则返回 0;

若 m 大于 n,则返回一个大于0的数值,m 会出现在 n 的后面;

说白了,如果函数fn返回的值为false,则按照升序排序,如果返回true,排序会降序排序;(m 和 n 按照排序后的顺序比较)

但是如果fn写成这样子呢?

function fn (m, n) {      return m < n; }

如果fn的返回值为false,则按降序排序;如果返回true,排序会升序排序;(m 和 n 按照排序后的顺序比较)

那,如果想随机排序呢?

function fn () {  return 0.5 - Math.random();}

Math.random()返回一个0到1的随机数,0.5 - Math.random() 就会随机返回true和false,这样就实现随机排序了。

再一次感叹JS的灵活,一个sort就可以把排序搞定。

转载于:https://my.oschina.net/No5stranger/blog/220454

你可能感兴趣的文章
springboot 注入xml自定义类
查看>>
标准之路网站上一篇文章《十天学会web标准(div+css)》的营养精华
查看>>
h5+css3最简单的图片飞入以及淡入淡出效果
查看>>
Instance Variables in ruby
查看>>
android实现触摸屏校准
查看>>
laravel 的安装
查看>>
jquery mobile validation
查看>>
uml 各种箭头的意思
查看>>
Dynamics 365/CRM 实体设计技巧
查看>>
Linux系统tree工具
查看>>
python之list+字典练习
查看>>
django-cbv模式-csrf中间件
查看>>
xcode xib 加载 、注意点
查看>>
Spring---Bean的继承与依赖
查看>>
LVS模式二:隧道模式(Tun)
查看>>
rsync 同步
查看>>
骑士问题 C组模拟赛
查看>>
设计 C组模拟赛
查看>>
Other things
查看>>
JZOJ 100046. 收集卡片
查看>>