我正在使用Mat List来显示大量数据。 mat列表用于根据列值对数据进行排序。
我有这个工作比较函数,它根据输入类型对字母或数字进行排序:
function compare(a, b, isAsc) {
return (a < b ? -1 : 1) * (isAsc ? 1 : -1);
}
该表按此函数排序:
this.sortedData = data.sort((a, b) => {
const isAsc = sort.direction === 'asc';
switch (sort.active) {
case 'OrderId':
return compare(+a.OrderId, +b.OrderId, isAsc);
case 'Site':
return compare(a.Site, b.Site, isAsc);
case 'OrderDate':
return compare(a.OrderDate, b.OrderDate, isAsc);
case 'Email':
return compare(a.Email, b.Email, isAsc);
case 'Phone':
return compare(a.Phone, b.Phone, isAsc);
case 'FullName':
return compare(a.FullName, b.FullName, isAsc);
default:
return 0;
}
});
这是按预期工作的,但是我想按时间顺序以相同的方式对date属性进行排序。我怎样才能做到这一点?我基本上只需要一个工作比较功能,它支持&#39; isAsc&#39; - 升序为真,下降为假。
可以使用
将a.Orderdate变量解析为日期new Date(a.OrderDate)
因为它是转换为字符串的日期。