美文网首页
项目中遇到的问题

项目中遇到的问题

作者: FE晓伟哥 | 来源:发表于2021-01-17 17:56 被阅读0次

将后台按月返回的数据进行分页加载

后台返回数据格式

data() {
  return () {
    renderList: []
  }
},
methods: {
  getList() {
    //页面初次加载 每次加载5条数据
    var data = [
        {date: '2020年9月',list: [{parkName:'1某停车场',id:'1'},{parkName:'2某某停车场',id:'2'}]},
        {date: '2020年8月',list: [{parkName:'3某停车场',id:'3' },{parkName:'4某某停车场',id:'4'},{parkName:'5某某停车场',id:'5'}]}
        ]
      this.renderList = data
  }
}

以下是当前需求遇到的问题

请求第二页数据时 还存在当前页面加载月份的数据
例如第二页请求返回数据

var data = [
        {date: '2020年8月',list: [{parkName: '6某停车场',id: '6'},{parkName: '7某某停车场',id: '7'},{parkName: '8某某停车场',id: '8'}]},
        {date: '2020年7月',list: [{parkName: '9某停车场',id: '9'},{parkName: '10某某停车场',id: '10'}]}
      ]

最终实现合并数组对象中的相同项

data() {
  return () {
    renderList: []
  }
},
methods: {
  async getList() {
    let { renderList  } = this,
          testList = []

    //这里是接口请求 主要是将所有请求回的数据合并到一个数组中
    await getParkList().then(ret => {
        testList = [...renderList,...ret.data]
    })
    let obj = {},
        list= [];
    for(var i = 0; i < testList.length; i++){
    var currItem = testList[i];
    if(!obj[currItem.date]){
      list.push({
        list: currItem.list,
        date: currItem.date
      });
      obj[currItem.date] = currItem;
    }else{
      for(var j = 0; j < list.length; j++){
        var item = list[j];
        if(item.date == currItem.date){
          item.list = [...item.list,...currItem.list]
          break;
        }
      }
    }
  };
  this.renderList = testList 
  console.log(list)
  }
}
  

另一种实现方式

let obj = {},
    list = test.reduce((obj, item) => {
        let find = obj.find(i => i.date === item.date)
        let _d = {
          ...item
        }
        find ? find.list = [...find.list, ...item.list] : obj.push(_d)
        return obj
      }, [])
console.log(list)
list输出结果.png

相关文章

  • vue2项目中遇到的问题汇总

    华为内置浏览器打不开vue2页面如何调试: 用iE浏览器的 edge版本,检查报错,一个错都不能有,全部清除报错 ...

  • 项目中遇到的问题

    mySql常用类型: int:整型 默认长度11 10位长度 double:浮点型,例如double(5,2)表...

  • 项目中遇到的问题

  • 项目中遇到的问题

    1.判断是安卓还是IOS 2.怎么渲染数据 3.子组件怎么获取子组件的属性 1.图二是在子组件上怎么接受父组件传来...

  • 项目中遇到的问题

    1. vue-cli 文件的作用 index.html 和App.vue都是指同一个页面,App.vue中是组价...

  • 项目中遇到的问题

    数据解析问题: 由于后台返回的数据是一串字符串,而不是JSON格式.所以需要我们自己处理.数据格式是这样的:key...

  • 项目中遇到的问题

    1.页面之间进行跳转后回到原始页面,页面布局整体下移64px/44px个高度? 查阅了一些资料后,说要设置这个属性...

  • 项目中遇到的问题

    dyld: Library not loaded: @rpath/Alamofire.framework/Alam...

  • 项目中遇到的问题

    1.iOS中,延时调用不会因为对象的销毁而失效,如果不作取消处理,可能会造成程序功能混乱。 2.在接收到新聊天消息...

  • 项目中遇到的问题

    将后台按月返回的数据进行分页加载 后台返回数据格式 以下是当前需求遇到的问题 请求第二页数据时 还存在当前页面加载...

网友评论

      本文标题:项目中遇到的问题

      本文链接:https://www.haomeiwen.com/subject/traaaktx.html