2015-10-08 70 views
4

我有一個JS的排序是這樣的:JS排序()空結束

records.sort(function(a, b) { 
    if (a < b) return -1; 
    if (a > b) return 1; 
    return 0; 
}); 

這工作,但我的一些記錄是""null

空記錄列在開頭,但我希望它們在最後。

我認爲有更好的方法來做到這一點比:

if (a == "") a = "zzzz"; 

但我怎麼能這樣做呢?

+1

http://stackoverflow.com/questions/29829205/sort-an-array-so-that-null-values-always-come-last –

回答

9

也許是這樣的:

records.sort(function(a, b) { 
    if(a === "" || a === null) return 1; 
    if(b === "" || b === null) return -1; 
    if(a === b) return 0; 
    return a < b ? -1 : 1; 
}); 
+0

[這不是足夠](http://stackoverflow.com/q/20883421/1048572) – Bergi

+0

@Bergi我已經更新了答案,謝謝 –