const arr = [
{
name: 'AAA',
date: '2023/02/03'
},
{
name: 'BBB',
date: '2023/03/05'
},
{
name: 'CCC',
date: '2022/02/07'
}
];
console.log(
// 需要输出arr里的对象, 按照date排序
);
const arr = [
{
name: 'AAA',
date: '2023/02/03'
},
{
name: 'BBB',
date: '2023/03/05'
},
{
name: 'CCC',
date: '2022/02/07'
}
];
console.log(
// 需要输出arr里的对象, 按照date排序
);
arr.sort((a,b) => a.date.replace(/\//g,'')-b.date.replace(/\//g,''))
arr.sort((a,b) => new Date(a.date)-new Date(b.date))
arr.sort((a, b) => {
const dateA = new Date(a.date);
const dateB = new Date(b.date);
return dateA - dateB;
});
使用Array.sort()方法,比较函数接收两个参数a和b,将对象的date属性转换为Date对象,并通过减法运算符进行比较,以确定排序顺序
封装了一个函数,传入数组,默认是升序
function sortByDate(arr, order = 'asc') {
return arr.sort((a, b) => {
const dateA = new Date(a.date);
const dateB = new Date(b.date);
if (order === 'asc') {
return dateA - dateB;
} else if (order === 'desc') {
return dateB - dateA;
} else {
throw new Error("Order must be 'asc' or 'desc'");
}
});
}
// 示例使用:
const sortedAsc = sortByDate(arr); // 不传第2个参数,默认为升序
console.log(sortedAsc);
const sortedDesc = sortByDate(arr, 'desc'); // 降序
console.log(sortedDesc);
const result = arr.sort((a, b) => new Date(b.date) - new Date(a.date));
console.log(result);
这种规范的日期字符串,字符串大小就是日期大小,可以直接比较
arr.sort(({ date: a }, { date: b }) => a < b ? -1 : a > b ? 1 : 0);
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决