对数字数组进行排序,以使空值最后出现

The*_*see 5 javascript arrays sorting

我有一个像这样的数组:

var arr = [5, 25, null, 1, null, 30]
Run Code Online (Sandbox Code Playgroud)

使用此代码从低到高对数组进行排序,这就是显示的结果:

无无1 5 25 30

arr.sort(function (a, b) {
    return a - b;
};
Run Code Online (Sandbox Code Playgroud)

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

1 5 25 30空null

我看了一下对数组进行排序,以便空值始终排在最后,并尝试了此代码,但是输出仍然与第一个相同-空值排在第一位:

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

Nen*_*car 5

您可以先按 not 排序null,然后再按数字排序。

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

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

console.log(arr)
Run Code Online (Sandbox Code Playgroud)