gpt4 book ai didi

javascript - 使用 sort() 移动数组开头的对象

转载 作者:行者123 更新时间:2023-12-01 12:04:11 24 4
gpt4 key购买 nike

我需要按日期值对对象数组进行排序:

array.sort(function(a,b){
return new Date(b.date) - new Date(a.date);
})

但如果date未定义,则应放在开头。使用上面显示的代码,空数据集将放在末尾。

最佳答案

const array = [
{ date: 624000, name: 'Eddison', },
{ date: 224000, name: 'Bobby', },
{ name: '--no date 2' },
{ date: 924000, name: 'Fred', },
{ date: 124000, name: 'Abe', },
{ name: '--no date 1' },
{ date: 424000, name: 'David', },
{ date: 324000, name: 'Catheryn', },
];

// assuming there is no 0 date
array.sort(function(a, b) {
return (a.date && b.date)
? new Date(b.date) - new Date(a.date)
: (a.date || 1) - (b.date || 1);
});

//result
array.forEach(elem => console.log(JSON.stringify(elem)));

请注意,如果您关心日期 0 和未定义日期之间的区别,则

  return (a.date !== undefined && b.date !== undefined)

关于javascript - 使用 sort() 移动数组开头的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59516177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com