2016-06-23 121 views
-1

我需要一些幫助排序對象數組。對具有空值的屬性排序數組對象

對象具有屬性value它可以有100 or 0 or null.

我想排序這個數組按降序排列,但空應該總是在最後。

例1

輸入

array = [{key: a, value: 100},{key: a, value: null},{key: a, value: 0}] 

預計輸出

array = [{key: a, value: 100},{key: a, value: 0},{key: a, value: null}] 

回答

0

試試這個

array.sort(function(a,b){ 
    var valA = a.value == null ? Number.MAX_SAFE_INTEGER : a.value; 
    var valB = b.value == null ? Number.MAX_SAFE_INTEGER : b.value; 
    return valA - valB; 
}) 
+0

@simbada嘗試在你的瀏覽器控制檯 - 輸出'9007199254740991'我的瀏覽器的控制檯上 – gurvinder372

0

你可以CHEC k值,並使用非常大的值作爲排序值。

var array = [{key: 'a', value: 100},{key: 'a', value: null},{key: 'a', value: 0}]; 
 

 
array.sort(function (a, b) { 
 
    return (b.value === null ? Infinity : b.value) - (a.value === null ? Infinity : a.value); 
 
}); 
 

 
console.log(array);

相關問題