我需要一些帮助来排序对象数组。
该对象具有属性value
,它可以具有100 or 0 or null.
我想按降序对这个数组进行排序,但是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 :(得分: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;
})
答案 1 :(得分:0)
您可以检查该值并使用非常大的值作为排序值。
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);