1. 程式人生 > 實用技巧 >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] } } })

這樣的話我們就得到我們想要渲染的資料,而且已經處理好的資料,如下

第一頁和第二頁請求並鍵相等的資料合併了: