js array每个item都有date字符串如何按照年进行分组且根据 年进行排序
您可以使用Array.reduce()方法来按照年份进行分组,然后使用Array.sort()方法对分组后的数组根据年份进行排序。以下是一个示例代码:
// 假设每个item的结构如下
const items = [
{ date: "2022-01-01", value: "item1" },
{ date: "2021-12-31", value: "item2" },
{ date: "2021-01-01", value: "item3" },
{ date: "2022-02-01", value: "item4" },
{ date: "2022-01-15", value: "item5" }
];
// 按照年份进行分组
const groupedItems = items.reduce((result, item) => {
const year = item.date.substring(0, 4); // 提取年份
if (!result[year]) {
result[year] = []; // 创建新的年份分组
}
result[year].push(item); // 将item添加到对应年份的分组中
return result;
}, {});
// 根据年份进行排序
const sortedGroups = Object.entries(groupedItems).sort((a, b) => {
return a[0] - b[0]; // 按照年份进行升序排序,如果需要降序排序,可以使用 b[0] - a[0]
});
console.log(sortedGroups);
输出结果为:
[
["2021", [
{ date: "2021-12-31", value: "item2" },
{ date: "2021-01-01", value: "item3" }
]],
["2022", [
{ date: "2022-01-01", value: "item1" },
{ date: "2022-02-01", value: "item4" },
{ date: "2022-01-15", value: "item5" }
]]
]
这样,sortedGroups数组中的每个元素都是一个包含年份和对应年份下的item数组的子数组
原文地址: http://www.cveoy.top/t/topic/i0wu 著作权归作者所有。请勿转载和采集!