您可以使用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数组的子数组

js array每个item都有date字符串如何按照年进行分组且根据 年进行排序

原文地址: http://www.cveoy.top/t/topic/i0wu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录