前端 数据重组>根据日期重组

/**
 * @description   数据分组
 * @param array   需要分组的数组
 * @param key     唯一展示字段的key
 * @returns {[]}  JSON数组
 * 调用 groupData(list,'commit_time2')
 */
 function groupData(array, key){
  let newArray = [];
  array.forEach((item, i) => {
    // 没有搜索到则该数据不分组
    let index = -1;
    let keyVal = item[key].split(' ')[0]; // 后台的时间格式是 YYMMDD hh:mm
    let isExists = newArray.some((newItem, j) => {
      if (keyVal === newItem[key]) {
        index = j;
        return true;
      }
    });
    if (!isExists) {
      let rows = {
        subList: [item]
      };
      rows[key] = keyVal;
      newArray.push(rows);
    } else {
      newArray[index].subList.push(item);
    }
  });
  return newArray;
}

/**
 * @description    分页数据叠加:适用于数据分组
 * @param newList  需要叠加的新数据
 * @param oldList  需要接收叠加数据的老数据
 * @param key      唯一展示字段的key
 * @param currPage 当前第几页
 * @returns {[]}   JSON数组
 */
 function addPageData(newList, oldList, key, currPage){
  // 如果是第一页则不需要叠加数据,否则需要叠加数据并判断是否有重复项
  let totalList = [];
  if (currPage > 1) {
    // 上一页的最后一条和当前加载数据的第一条比较,如果相等则合并
    let oldListLast = oldList[oldList.length - 1];
    if (oldListLast[key] === newList[0][key]) {
      oldListLast.subList = oldListLast.subList.concat(newList[0].subList);
      totalList = oldList.concat(newList.splice(1));
    } else {
      totalList = oldList.concat(newList);
    }
  } else {
    totalList = newList;
  }
  return totalList;
}
/*调用
 *page自定义分页 当自定义分页大于1调用
 *arry 页面数据 listArry和总数对比,当相同停止加载数据
  let totalGroup;
   if(this.page>1){
     
     this.arry = totalGroup;
     this.listArry.push(...list1);
   }else{
     this.listArry = list1;
     this.arry = groupData1;
   }
     
*/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值