一个list,有两个date属性,其中属性A一定有值,属性B不一定有值,需求如下:
将这个list进行排序,如果属性B有值,那么这个这一条数据的排序依据就是属性B,如果属性B没有值,则使用属性A进行排序
【以下回答由 GPT 生成】
优化后问题:
问题标题: 如何在Vue中根据两个时间属性进行排序? 问题标签: vue.js 问题内容: 我在Vue中有一个列表,每个列表项都有两个日期属性(A和B)。其中属性A一定有值,而属性B不一定有值。我的需求是,我想根据这两个属性对列表进行排序。如果属性B有值,那么排序应该根据属性B进行;如果属性B没有值,则应该使用属性A进行排序。请问应该如何实现这个功能?
【相关推荐】
data.sort((a,b)=>{
if(b.dateB){
return b.dateB-a.dateB
}else{
return b.dateA-a.dateA
}
})
const list = [
{ A: new Date('2023-08-17'), B: null },
{ A: new Date('2023-08-15'), B: new Date('2023-08-16') },
{ A: new Date('2023-08-16'), B: null },
{ A: new Date('2023-08-14'), B: new Date('2023-08-15') },
];
list.sort((a, b) => {
// 如果B有值,使用B排序,否则使用A
const dateA = a.B ? a.B : a.A;
const dateB = b.B ? b.B : b.A;
if (dateA < dateB) {
return -1;
} else if (dateA > dateB) {
return 1;
} else {
return 0;
}
});
console.log(list);