在javascript中排序数字和空值的数组

时间:2015-07-01 09:17:52

标签: javascript sorting null

我需要一些帮助来为DataTables编写排序功能。我有一个包含货币的列 - 具有正值和负值的数字以及空格。
我想将空值显示为最后一个(/第一个),但它们总是出现在负值之前。任何人都可以向我暗示解决方案吗?

2 个答案:

答案 0 :(得分:3)

提示是在排序时将空值更改为Number.NEGATIVE_INFINITY或Number.POSITIVE_INFINITY

答案 1 :(得分:0)

给定一个包含null的数字数组,如果你想对它们进行排序并在结果的末尾保留null,你可以这样自定义排序函数:

var num = [-22,55,30,0,0,null,350,null,10000,-20];

num.sort(function(a,b){
    if (b == null) return -1;
    else if (a==null) return 1;
    else return a > b
});

// [-22, -20, 0, 0, 30, 55, 350, 10000, null, null]

上面的这个例子将null视为最大数字,因此在对数组进行排序时,空值最后(参见sort函数)。如果您想要相反的顺序,可以对该自定义排序函数进行修改。