要按照多个属性对数组进行排序,可以使用Array.sort()方法,并传入一个自定义的比较函数作为参数。这个比较函数可以比较多个属性,并按照指定的顺序进行排序。
下面是一个示例代码,演示如何按照日期降序和名称进行排序:
// 定义一个待排序的数组
const data = [
{ name: 'Apple', date: '2021-01-15' },
{ name: 'Banana', date: '2021-02-20' },
{ name: 'Orange', date: '2021-01-10' },
{ name: 'Apple', date: '2021-02-10' }
];
// 定义比较函数
function compare(a, b) {
// 首先按照日期降序排序
if (a.date > b.date) {
return -1;
} else if (a.date < b.date) {
return 1;
} else {
// 如果日期相同,则按照名称排序
if (a.name < b.name) {
return -1;
} else if (a.name > b.name) {
return 1;
} else {
return 0;
}
}
}
// 使用比较函数进行排序
data.sort(compare);
// 输出排序结果
console.log(data);
运行以上代码,输出结果如下:
[
{ name: 'Banana', date: '2021-02-20' },
{ name: 'Apple', date: '2021-02-10' },
{ name: 'Apple', date: '2021-01-15' },
{ name: 'Orange', date: '2021-01-10' }
]
按照日期降序排序后,名称相同的项会按照名称进行升序排序。