按具有空值的属性对数组对象进行排序

时间:2016-06-23 09:10:19

标签: javascript

我需要一些帮助来排序对象数组。

该对象具有属性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}]

2 个答案:

答案 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);