编程语言
首页 > 编程语言> > js,javascript中对象键相同的数据合并,js对象的数据处理问题

js,javascript中对象键相同的数据合并,js对象的数据处理问题

作者:互联网

在开发过程中我们会遇到例如历史记录翻页,还有带有日期评论的论坛翻页,遇到键值相同数据合并的问题

在这里举个例子,这个需求是历史评论,就是比如后端第一页返回的是10条数据,数据格式如下(第一页的数据):

然后我们前端渲染是把键渲染出来,然后数据是键里面的数组

 

这里就有个问题了,就是上拉加载到第二页的时候假如还有  2020-11-13的数据,那么日期就会变成有两个2020-11-13的数据,下面的第二页的数据,这样的话就需要我们把第二页中的2020-11-13和第一页的合并起来

 

这里我们需要用到js的一个对象方法 :hasOwnProperty()


它的作用是返回一个布尔值,判断对象是否包含特定的自身

下面请看具体代码

 //这里ajax就写成你们请求的方法,data就是返回来的数据;这个ajax就是每一次上拉加载翻页请求一次的函数
var centendata = {};
ajax((data)=>{
        if(data.length!=0){
    //把对象键值循环出来
          for(var l in data){
                for(var i in centendata){
     //如果键值相等就用数组处理方法把请求回来的数据push进去
                  if(i==l){
                      centendata[i].push(...data[l]);
                  }
                }
    //如果没有这个键值,那么就赋值一个
            if(!centendata.hasOwnProperty(l)){
                centendata[l]= data[l]
            }
          }
    })

 

这样的话我们就得到我们想要渲染的数据,而且已经处理好的数据,如下

第一页和第二页请求并键相等的数据合并了:

标签:对象,data,javascript,第二页,js,键值,centendata,第一页,数据
来源: https://www.cnblogs.com/taihe/p/14173334.html