javascript – 对数字数组进行排序,以便最后显示空值

我有这样一个数组:

var arr = [5, 25, null, 1, null, 30]

使用此代码将数组从低到高排序,这是显示为输出的内容:

null null 1 5 25 30

arr.sort(function (a, b) {
    return a - b;
};

但是,我希望最后显示空值,如下所示:

1 5 25 30 null null

我看了Sort an array so that null values always come last并尝试了这段代码,但输出仍然与第一个相同 – 空值首先出现:

arr.sort(function (a, b) {
        return (a===null)-(b===null) || +(a>b)||-(a<b);
};

最佳答案 您可以先按非空,然后按数字排序.

var arr = [5, 25, null, 1, null, 30]

arr.sort(function(a, b) {
  return (b != null) - (a != null) || a - b;
})

console.log(arr)
点赞