js 数组sort()

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最底层跟基础的

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






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值