2014-01-05 35 views
0

我有以下的二维数组值:的Javascript二维数组排序不能正常工作

A 65 
B 7 
C 775,259 
D 893 
E 97 
F 92,260 
G 77,364 
H 7,722 
I 9,240 
J 789,212 

我想通过我写了一个自定义排序功能,按降序排列第二列进行排序:

array.sort(function(a,b) { 
    return b[1] - a[1]; 
}); 

结果似乎按顺序排序......但在字符比较的问题。结果是:

E 97 
I 9,240 
F 92,260 
D 893 
J 789,212 
C 775,259 
G 77,364 
H 7,722 
B 7 
A 65 

我知道这是排序,但不是我想要的方式。我试图将数值转换为数字来确定,但我仍然得到相同的结果。我想按数值降序排列。有谁知道我能做到这一点?

回答

0

我认为数据仍然是字符串格式。因此,您可能需要去掉逗号并将字符串数据转换为像这样的整数

array.sort(function(a,b) { 
    return parseInt(b[1].replace(",", "")) - parseInt(a[1].replace(",", "")); 
}); 
+0

非常感谢。我可以通过使用Number()函数解析它来完成我想要的操作。 –

+0

@JonJonYun欢迎您:)请考虑接受此答案,http://meta.stackexchange.com/a/5235/235416 :)访问该网站时出现同样问题的人也将从中受益。 – thefourtheye