天天看點

JS根據數組中對象的時間,根據時間相同分組

需求:根據背景傳回來的資料按同一天的日期進行展示,背景傳回的資料已經按日期排序,

參考了http://blog.csdn.net/zfangls/article/details/79280083的文章後發現可用,非常感謝!

主要知識點:數組的some()方法

var arr = [{
            "id": "10",
            "tx_type": "0",
            "tx_number": "1",
            "tx_image_name": "X3",
            "tx_image_url": "https://biangene.oss-cn-shenzhen.aliyuncs.com/",
            "tx_create_time": "2018-03-21 17:28:20.0"
        }, {
            "id": "11",
            "tx_type": "0",
            "tx_number": "1",
            "tx_image_name": "X4",
            "tx_image_url": "https://biangene.oss-cn-shenzhen.aliyuncs.com/",
            "tx_create_time": "2018-03-22 17:28:20.0"
        }, {
            "id": "11",
            "tx_type": "0",
            "tx_number": "1",
            "tx_image_name": "X4",
            "tx_image_url": "https://biangene.oss-cn-shenzhen.aliyuncs.com/",
            "tx_create_time": "2018-03-21 17:28:20.0"
        }]
           
function mapLoction(arr) {
    var newArr = [];
    arr.forEach(function (oldData, i) {
         var index = -1;
         var createTime = oldData.tx_create_time.substring(0, 10);
         var alreadyExists = newArr.some(function (newData, j) {
             if (oldData.tx_create_time.substring(0, 10) === newData.tx_create_time.substring(
                     0, 10)) {
                 index = j;
                 return true;
             }
         });
         if (!alreadyExists) {
             newArr.push({
                 tx_create_time: oldData.tx_create_time,
                 res: [{
                     "tx_create_time": oldData.tx_create_time,
                     "tx_image_url": oldData.tx_image_url,
                     "tx_image_name": oldData.tx_image_name,
                     "tx_number": oldData.tx_number,
                     "tx_type": oldData.tx_type,
                     "id": oldData.id
                 }]
             });
         } else {
             newArr[index].res.push({
                 "tx_create_time": oldData.tx_create_time,
                 "tx_image_url": oldData.tx_image_url,
                 "tx_image_name": oldData.tx_image_name,
                 "tx_number": oldData.tx_number,
                 "tx_type": oldData.tx_type,
                 "id": oldData.id
             });
         }
     });
     return newArr;
 };
 //傳回的資料格式為 
 // newArr=[
 //   {
 // 	  tx_create_time: "2018-03-21 17:28:20.0",
 //		  res:[{
 //         "id": "10",
 //         "tx_type": "0",
 //         "tx_number": "1",
 //         "tx_image_name": "X3",
 //         "tx_image_url": "https://biangene.oss-cn-shenzhen.aliyuncs.com/",
 //         "tx_create_time": "2018-03-21 17:28:20.0"
 //     },{
 //         "id": "11",
 //         "tx_type": "0",
 //         "tx_number": "1",
 //         "tx_image_name": "X4",
 //         "tx_image_url": "https://biangene.oss-cn-shenzhen.aliyuncs.com/",
 //         "tx_create_time": "2018-03-21 17:28:20.0"
 //     }]
 //	},{
 //  	tx_create_time: "2018-03-22 17:28:20.0",
 //  	res:[{
 //         "id": "11",
 //         "tx_type": "0",
 //         "tx_number": "1",
 //         "tx_image_name": "X4",
 //         "tx_image_url": "https://biangene.oss-cn-shenzhen.aliyuncs.com/",
 //         "tx_create_time": "2018-03-22 17:28:20.0"
 //     }]
 //}]   
           

繼續閱讀