根据可能为null的属性对数组排序 [英] Sort an array according to a property which may be null
本文介绍了根据可能为null的属性对数组排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个对象数组:
let items = [
{ name: 'eric', value: 1 },
{ name: 'bob', value: 4 },
{ name: 'michael', value: 0 },
{ name: 'john', value: 3 },
{ name: 'brad', value: null },
{ name: 'martin', value: 2 },
{ name: 'chris', value: null }
];
我想对数组进行排序,以便可以通过值"属性对对象进行排序,如果它为null,则将对象放在数组的底部:
{ name: 'michael', value: 0 },
{ name: 'eric', value: 1 },
{ name: 'martin', value: 2 },
{ name: 'john', value: 3 },
{ name: 'bob', value: 4 },
{ name: 'brad', value: null },
{ name: 'chris', value: null }
->
我已经尝试过了items.sort((a, b) => {
return (a.orde ===null)-(b.ordre===null) || +(a.ordre>b.ordre)||-(a.ordre<b);
});
但是似乎不起作用
建议?
解决方案
您可以先检查null
,然后按值排序.
let items = [{ name: 'eric', value: 1 }, { name: 'bob', value: 4 }, { name: 'michael', value: 0 }, { name: 'john', value: 3 }, { name: 'brad', value: null }, { name: 'martin', value: 2 }, { name: 'chris', value: null }];
items.sort(({ value: a }, { value: b }) => (a === null) - (b === null) || a - b);
console.log(items);
.as-console-wrapper { max-height: 100% !important; top: 0; }
I ve an array of objects :
let items = [
{ name: 'eric', value: 1 },
{ name: 'bob', value: 4 },
{ name: 'michael', value: 0 },
{ name: 'john', value: 3 },
{ name: 'brad', value: null },
{ name: 'martin', value: 2 },
{ name: 'chris', value: null }
];
i want to sort my array so that the objects can be sorted by the "value" attribute , and if it's null , make the object in the bottom of the array :
{ name: 'michael', value: 0 },
{ name: 'eric', value: 1 },
{ name: 'martin', value: 2 },
{ name: 'john', value: 3 },
{ name: 'bob', value: 4 },
{ name: 'brad', value: null },
{ name: 'chris', value: null }
->
i ve tried this ;
items.sort((a, b) => {
return (a.orde ===null)-(b.ordre===null) || +(a.ordre>b.ordre)||-(a.ordre<b);
});
But seems that it's not working
Suggestions ?
解决方案
You could check for null
first and then sort by the value.
let items = [{ name: 'eric', value: 1 }, { name: 'bob', value: 4 }, { name: 'michael', value: 0 }, { name: 'john', value: 3 }, { name: 'brad', value: null }, { name: 'martin', value: 2 }, { name: 'chris', value: null }];
items.sort(({ value: a }, { value: b }) => (a === null) - (b === null) || a - b);
console.log(items);
.as-console-wrapper { max-height: 100% !important; top: 0; }
这篇关于根据可能为null的属性对数组排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文