哈哈哈哈哈哈哈
2015-09-17 16:46
1.使用sort()将数组进行排序,代码如下:
<script type="text/javascript">
var myarr1 = new Array("Hello","John","love","JavaScript");
var myarr2 = new Array("80","16","50","6","100","1");
document.write(myarr1.sort()+"<br>");
document.write(myarr2.sort());
</script>
运行结果:
Hello,JavaScript,John,love
1,100,16,50,6,80
没有传参时,默认以unicode码方式排序。
数组sort()方法对于数组中的任何元素,无论是什么数据类型,都会用toString()方法转化为字符串,然后再比较字符串,所以得到这样的结果。
如果想将你的myarr2数组进行数值升降的排列就要给sort()方法一个参数。它是有参数的,是函数。一般是排列函数。比如你把document.write(myarr2.sort(function(a,b)return a-b;))写入,就能将输出改成升序;将中间的a-b换成b-a就能输出为降序。这是因为该参数函数return的结果如果是小于0的,a与b的顺序将不变;若return 的结果大于0,则a与b的顺序将改变。
这样写你可能更好理解。若是升序:
document.write(sort(compare));
function compare(a,b){
if(a<b)return -1;
else if(a>b)return 1;
else return 0;
}
你可以试着编写一下降序。
myarr1.sort()+"<br>" 因为sort 中为空,数组为字母,sort按照字母的顺序排序,结果:Hello,JavaScript,John,love 然后<br>换行,myarr2.sort() 你的结果不对,应该是:100,80,50,16,6,1 数字按照从大到小排序,希望可以帮到你。
我感觉是按ascll值进行的排序
JavaScript进阶篇
468672 学习 · 21895 问题
相似问题