javascript中array()的sort方法
在javascript中的sort()对数组进行排序:在都是个位数的情况下:<script type="text/javascript">var arr=[4,1,2,3,5,2,6]arr.sort();document.write(arr);</script>代码运行如下:注意:如果出现了十位数,是遵循的Unicode编码来进行的比较,就不能再简单的使用sort()进行
·
在javascript中的sort()对数组进行排序:
- 在都是个位数的情况下:
<script type="text/javascript">
var arr=[4,1,2,3,5,2,6]
arr.sort();
document.write(arr);
</script>
代码运行如下:
注意:如果出现了十位数,是遵循的Unicode编码来进行的比较,就不能再简单的使用sort()进行排序了。
解决方法:可以在sort()中添加一个回调函数,来指定排序规则;需要为其定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数。
浏览器会根据回调函数的返回值来决定元素的顺序:
- 如果返回一个大于0的值,则元素会交换位置。
- 如果返回一个小于0的值,则元素的位置不变。
- 如果返回一个0,则认为两个元素相等,也不交换位置。
- 代码如下:
<script type="text/javascript">
var arr=[4,11,2,3,5,2,16,59]
arr.sort(function(a,b){
//前边的大
if(a>b){
return 1;
}else if(a<b){
return -1;
}else{
return 0;
}
});
document.write(arr);
</script>
运行结果如下:
简洁代码:
<script type="text/javascript">
var arr=[4,11,2,3,5,2,16,59]
arr.sort(function(a,b){
//前边的大
return a-b;
});
document.write(arr);
</script>
解释:当a-b大于0时返回的就是一个大于0的数进行交换位置。反之,若要倒序,使b-a即可。
更多推荐
所有评论(0)