JS按時間戳去分類

後端返回了時間戳,前端按照時間分類。
正常情況下,這種都是後臺進行處理,當然也不能排除例外情況。

json數據:

var aa = [
            { "time" : 1505152478751 },
            { "time" : 1505224173294 },
            { "time" : 1505233473065 },
            { "time" : 1505314974043 },
            { "time" : 1505381144446 },
            { "time" : 1505394425780 },
            { "time" : 1505400646107 },
            { "time" : 1505871416094 },
            { "time" : 1505963321653 },
            { "time" : 1507175119345 }
        ]

希望顯示的數據結構是這樣:

[
    {
        "date": "2017年10月",
        "data": [
            {
                "time": 1507175119345
            }
        ]
    }
    // ... 後面就是 98月
]

解決方法:
可以循環給的數據,先比對年月,根據年月再循環添加年月相等的時間

var formatData = function(data){
        var arr = [];
        data.forEach(function(item, i){
            var tmpDate = new Date(item.time);
            var month = tmpDate.getMonth() + 1;
            var year = tmpDate.getFullYear();
            var tmpMonth = tmpDate.getMonth() + 1;
            if(i === 0){
                var tmpObj = {};
                tmpObj.date = year + '年' + month + '月';
                tmpObj.data = [];
                tmpObj.data.push(item.time);
                arr.push(tmpObj);
            }else{
                if(arr[arr.length-1]['date'] === (year + '年' + month + '月')){
                    arr[arr.length-1]['data'].push(item.time);
                }else{
                    var tmpObj = {};
                    tmpObj.date = year + '年' + month + '月';
                    tmpObj.data = [];
                    tmpObj.data.push(item.time);
                    arr.push(tmpObj);
                }
            }

        });
        return arr;
    }

// formatData(aa) 輸出結果
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章