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]
            }
          }
    })

 

這樣的話我們翻頁就得到已經處理好  我們想要渲染的數據,如下

請求第一頁和下翻第二頁的時候鍵相等的數據合並了:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM