javascript - 根据可能为 null 的属性对数组进行排序

标签 javascript typescript sorting ecmascript-6 ecmascript-5

我有一个对象数组:

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 }
];

我想对我的数组进行排序,以便可以按“值”属性对对象进行排序,如果它为空,则将对象放在数组的底部:

  { 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; }

关于javascript - 根据可能为 null 的属性对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62179940/

相关文章:

javascript - 将 BrowserWindow 移动到右下角

javascript - 使用 JQuery 通过页面 URL 在页面中搜索值

javascript - 值正确且在范围内,但仍发送电子邮件

javascript - typescript 错误 : Property 'flat' does not exist on type '[string, unknown][]'

javascript - 用另一个数组对一个对象数组进行排序

javascript - Apollo 服务器 RESTDataSource - 接受自签名证书

reactjs - 组件安装时 Ref.current 未定义,当我需要它时它不会导致重新渲染

angular - ionic 警报强制输入

java - 从排序数组中删除 0 值?

Linux整行排序无法正确排序