对顺序不正确的数字进行排序
Sort on numericals giving improper order
这是我的代码片段
$(document).ready(function(){
var mylist = [ "20","3","100","50"];
mylist = mylist.sort();
$("#mydiv").html(mylist.join(""));
});
它在我的div上打印,就像下面一样
100
20
3
50
但是,如果我给出的数据是"二十"、"三"、"五十",请给出正确的顺序。
fifty
hundread
three
twenty
请帮帮我,我缺了什么??
谢谢。
默认的比较方法使用字母顺序。如果你想对数字进行排序,请使用以下方法:
arr.sort(function(a,b) {
return a - b;
});
Array.sort()
按字母顺序对值进行排序。该方法也可以与一个可选参数一起使用:比较函数
要对数值进行排序,请使用:
var numbers = [4, 2, 5, 10, 3];
numbers.sort(function(a, b) {
return a - b;
});
// numbers -> [2, 3, 4, 5, 10]
试试这个:
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(这就是比较器应该做的)。
http://jsfiddle.net/Lmzua/1/
从数组值中删除引号,并使用下面的额外函数获取升序Mylist=Mylist.sort(函数(a,b){return a-b});
您将数字定义为字符串文字,因此js将它们排序为字符串。您需要将其定义为数字文字:[ 20, 3, 100, 50]
,以便排序按需工作。
相关文章:
- Javascript排序字符串或数字
- 对角度数据表中括号内的数字进行排序
- Javascript按数字顺序排序()数组
- 如何对混合格式的数字(89900,1k,1.5k,15.2k)进行排序
- 可以用javascript对包含数字的字符串进行排序
- 如何对字母数字字符串值进行排序
- Javascript - 先排序字母,然后排序数字
- Javascript从关联数组中查找最低数字(气泡排序方法)
- 按字母顺序、数字顺序和特殊字符对字符串数组进行排序
- 当键是数字时,如何在JavaScript中对对象值进行排序
- lodash-sortby,如何将数字排序晚于字母
- 如何在 JavaScript 中用逗号分隔的
- 为什么 javascript 不按数字顺序对数字数组进行排序
- 对两个数组进行排序在两位数字上失败
- 使用数字和字符串对列进行排序
- 如何按数字升序对对象数组进行排序
- 对具有点分隔数字的属性的对象数组进行排序
- 我如何预先排序数字,而不是搞砸格式
- JavaScript正确排序数字
- 如何从使用D3.js读取的csv文件中排序数字列-列作为字符串读取