您的位置:首頁技術文章
文章詳情頁

javascript - 使用angular請求的數據需要根據時間分塊渲染到頁面的上,求思路?

瀏覽:110日期:2023-05-03 17:24:54

問題描述

$scope.data=[ {'time':'2017/06/23','money':'3000','type':'RMB'}, {'time':'2017/06/24','money':'4000','type':'RMB'}, {'time':'2017/07/23','money':'3000','type':'RMB'}, {'time':'2017/07/24','money':'4000','type':'RMB'}, {'time':'2017/07/25','money':'5000','type':'RMB'} ];

請求到的數據類似這樣,要根據time字段的時間,根據月份顯示數據,怎樣把六月和七月的數據過濾開比如渲染到頁面要這樣顯示 :6月23號 金額:3000 類別:人民幣24號 金額:4000 類別:人民幣7月23號 金額:3000 類別:人民幣24號 金額:4000 類別:人民幣25號 金額:5000 類別:人民幣

問題解答

回答1:

最終把數據格式轉換成:

newData = [ {time: ’2017/06’,items: [ { time: ’2017/06/23’, money: ’3000’, type: ’RMB’}, { time: ’2017/06/24’, money: ’4000’, type: ’RMB’},] }, {time: ’2017/07’,items: [ { time: ’2017/07/23’, money: ’3000’, type: ’RMB’}, { time: ’2017/07/24’, money: ’4000’, type: ’RMB’},] }, ];

然后使用兩個ng-repeat渲染。

至于思路的話:

先轉換成一個對象:

obj = {

’2016/06’: [ { time: ’2017/06/23’, money: ’3000’, type: ’RMB’}, { time: ’2017/06/24’, money: ’4000’, type: ’RMB’},],’2016/07’: [ { time: ’2017/07/23’, money: ’3000’, type: ’RMB’}, { time: ’2017/07/24’, money: ’4000’, type: ’RMB’},]

}

然后遍歷對象,轉換成數組。

const data = [ { time: ’2016/06/23’, money: ’1000’, type: ’RMB’ }, { time: ’2016/06/24’, money: ’1200’, type: ’RMB’ }, { time: ’2016/07/12’, money: ’1200’, type: ’RMB’ }, { time: ’2016/07/15’, money: ’1200’, type: ’RMB’ }, ]; const obj = _.groupBy(data, item => item.time.substr(0, 7)); // 我這里使用了lodash,自行遍歷數組也是一樣的 const newData = Object.keys(obj).map(time => ({ time, items: obj[time] })); console.log(newData, 2);回答2:

雖然可以利用數組過濾匹配等對time進行拆分成你想要的格式,但是考慮到效率問題,我建議這些在服務端進行處理,返回你想要的數據格式,實在沒辦法的話再考慮數據分類處理

標簽: JavaScript
国产综合久久一区二区三区