js 数组sort()

来源:互联网 发布:sql中的distinct 编辑:程序博客网 时间:2024/06/18 17:34

js 数组sort()

遇到及一件有意思的事情,关于数组排序的问题。

sort()排序的依据是按字符跟字符编码来排序的(详见 W3c点击打开链接)

现在我想把一个有序的数组打乱,变成无序数组。

<script>var arr = ['images/1.jpg','images/2.jpg','images/3.jpg','images/4.jpg','images/5.jpg','images/6.jpg'];function randomsort() {  return Math.random()>.5 ? -1 : 1;  //用Math.random()函数生成0~1之间的随机数与0.5比较,返回-1或1  }  arr=arr.sort(randomsort);</script>

这样输出的结果会是一个无序的数组。

为什么我觉得这个很有意思呢!就是因为对sort()里边的参数理解不够深。

我感觉这个sort函数是在数组里拿两个数在比较,若return > 0 b前a后;reutrn < 0 a前b后;a=b时存在浏览器兼容    简化一下:a-b

输出从小到大排序,b-a输出从大到小排序。至于拿的哪两个数,估计就是随机的了。

我一直认为是顺序比较,自己就一直觉得不应该啊!怎么会这样。这个可能就是我做这么长时间的固有思想吧!什么都是一步步来

的。说到底还是思维不够发散,对着这些无关痛痒的问题瞎猜想。如果真想了解sort()的工作原理,恐怕要去看js最底层跟基础的

东西。不知道理解的对不对,所以发出来真心希望有人能指正出来。到时候将不胜感激。






0 0
原创粉丝点击