js運算元組根據key值去做操作(應用層面)
阿新 • • 發佈:2020-07-25
前端在處理後臺返回的介面同時,可能也會在功能中對資料進行操作。在實際開發中可能出現比較常見的一類就是歸類或者歸併。
如需要合併所有KEY值相同的的值,或者說累計相同KEY值所以在實際開發層面,在沒有找到更好的辦法之前我們想到的最多是for迴圈巢狀
for迴圈進行歸類,但是那樣既不高效,可讀性又差,所以我用reduce函式進行了縮減操作。如下
//模擬一二用到的變數 const data=[{ '2019-02-03':1 },{ '2019-01-01':34 },{ '2019-02-03':12 },{ '2019-01-01':31 },{'2019-03-01':5 }]; //模擬一 : 總結所有日期出現的次數如果有則疊加次數 letnew_data_one=data.reduce((v,i)=>Object.assign(v,v[Object.keys(i)[0]]?++v[Object.keys(i)[0]]:v[Object.keys(i)[0]]=1),{}); console.log(new_data_one,'事例一'); //模擬二 : 總結所有日期出現的值如果有則疊加值 letnew_data_two=data.reduce((v,i)=>Object.assign(v,v[Object.keys(i)[0]]?v[Object.keys(i)[0]]=Object.values(i)[0]+v[Object.keys(i)[0]]:v[Object.keys(i)[0]]=Object.values(i)[0]),{}); console.log(new_data_two,'事例二');
效果如下: