这是我的代码段
$(document).ready(function(){
var mylist = [ "20","3","100","50"];
mylist = mylist.sort();
$("#mydiv").html(mylist.join(""));
});
在我的div上打印如下
100
20
3
50
但如果我提供“二十”,“三”,“hundread”,“五十”等数据,请给予正确的命令。
fifty
hundread
three
twenty
请帮忙,我错过了什么?
感谢。
答案 0 :(得分:2)
默认比较方法使用字母顺序。如果要对数字进行排序,请使用:
arr.sort(function(a,b) {
return a - b;
});
答案 1 :(得分:2)
Array.sort()
默认按字母顺序对值进行排序。
该方法还可以与可选参数一起使用:比较函数
要对数值进行排序,请使用:
var numbers = [4, 2, 5, 10, 3];
numbers.sort(function(a, b) {
return a - b;
});
// numbers -> [2, 3, 4, 5, 10]
答案 2 :(得分:0)
试试这个:
var sortnumerically = function(a,b){
if (a<b) return -1;
else if (a>b) return 1;
else= return 0;
}
var mylist = [ 20,3,100,50];
mylist = mylist.sort(sortnumerically);
$("#mydiv").html(mylist.join(","));
好的,解释一下按比例的比较器功能。简单地说它接受两个输入a,b:大概来自阵列的元素。如果ab返回1(这是比较器应该做的)。
答案 3 :(得分:0)
从数组值中删除引号,并使用下面的额外函数来升序 Mylist = Mylist.sort(函数(a,b){return a-b});
答案 4 :(得分:-1)
您将数字定义为字符串文字,因此js将它们排序为字符串。您需要将数字文字定义为[ 20, 3, 100, 50]
,以使排序按要求运行。