请考虑以下代码:
myarray = new Array();
myarray[0] = parseInt("30");
myarray[1] = parseInt("32");
myarray[2] = parseInt("6");
myarray.sort();
document.write (myarray[0] + "," + myarray[1] + "," + myarray[2] + "<br/>");
myarray.reverse();
document.write (myarray[0] + "," + myarray[1] + "," + myarray[2]);
上面的代码将输出如下:
30,32,6
6,32,30
但我想要这样:
6,30,32
32,30,6
我怎样才能做到这一点?请帮忙。提前谢谢。
答案 0 :(得分:2)
默认情况下,按字母顺序排序。
使用:
myarray.sort(function(a,b){return a-b});
相反
答案 1 :(得分:1)
myarray.sort(function compareNumbers(a, b) {
return a - b;
});
会给你[6,30,32]和
myarray.sort(function compareNumbers(a, b) {
return b -a;
});
会给你反向的
答案 2 :(得分:0)
<强>的Array.sort 强>
如果未提供compareFunction,则会通过将元素转换为字符串并按字典(“词典”或“电话簿”,而不是数字)顺序比较字符串来对元素进行排序。
function compareNumbers(a, b) {
return a - b;
}
numberArray.sort(compareNumbers)
答案 3 :(得分:0)
对于数值数组,请尝试:
升序排序:
myarray.sort(function(a,b){return a-b});
降序排序:
myarray.sort(function(a,b){return b-a});
答案 4 :(得分:0)
要对数字进行排序,请使用以下内容:
myarray.sort(function(a,b){return a-b});
有关排序字母/数字的更多详细信息,请参阅此处: http://www.w3schools.com/jsref/jsref_sort.asp