2016-06-23 86 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);

相关问题