js,javascript中物件鍵相同的資料合併,js物件的資料處理問題
阿新 • • 發佈:2020-12-22
在開發過程中我們會遇到例如歷史記錄翻頁,還有帶有日期評論的論壇翻頁,遇到鍵值相同資料合併的問題
在這裡舉個例子,這個需求是歷史評論,就是比如後端第一頁返回的是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] } } })
這樣的話我們就得到我們想要渲染的資料,而且已經處理好的資料,如下
第一頁和第二頁請求並鍵相等的資料合併了: