Js按日期分组数据

转载地址:小程序开发笔记(八)—Js数组按日期分组显示数据

// 数据结构
let data = [{
    
    
    title: '今天天气真不错',
    content: '今天天气真不错,太阳暖暖的,白云在天上飘啊飘的,风轻轻的 吹着,吹得树叶摆啊摆的。',
    date: '2020-12-12'
}, {
    
    
    title: '今天发生了件愉快的事情',
    content: '想着今天要陪小屁娃去看电竞展,以此为借口没有晨练! ',
    date: '2020-12-12'
}, {
    
    
    title: '今天天气真不好',
    content: '今天天气真不好..热的我都要发疯了,只能呆在室内',
    date: '2020-12-11'
}]
function dataResort(data) {
    
    
  // 定义空数组,用于存储新组装的数据
  let newArr = [];
  // 遍历数组
  data.forEach((item, i) => {
    
    
      // 默认当前操作的数据下标 -1 
      let index = -1;
      // 判断数组中是否已经存在当前遍历数据的时间
      let isExists = newArr.some((newItem, j) => {
    
    
          if (item.date == newItem.date) {
    
    
              // 存在就保存当前数据下标  用于插入数据
              index = j;
              return true;
          }
      })
      // 如果没有就存储一条新对象数据
      if (!isExists) {
    
    
          newArr.push({
    
    
              date: item.date,
              subList: [item]
          })
      } else {
    
    
          // 如果有就插入到已存在的对象中
          newArr[index].subList.push(item);
      }
  })

  // 返回新数组
  return newArr
}

console.log(dataResort(data));

结果:在这里插入图片描述
问题:分页加载情况下会出现两次同日期
解决办法:在foreach 中判断当前遍历数据时间是否等于 list最后一天数据的时间。

猜你喜欢

转载自blog.csdn.net/qq_41950190/article/details/112513540