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"
 //     }]
 //}]   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值