账单列表如何将年份月份一样的排在一起

array:[{

                "amount":5000,

                "goodsInfo":"翡翠城租金",

                "tradeTime":"2019-04-20"

            },

            {

                "amount":1200,

                "goodsInfo":"五联西苑租金",

                "tradeTime":"2019-04-25"

            },

            {

                "amount":200,

                "goodsInfo":"爱与家宾馆",

                "tradeTime":"2019-04-30"

            },

            {

                "amount":3800,

                "goodsInfo":"丁香花园",

                "tradeTime":"2019-05-20"

            },

            {

                "amount":2500,

                "goodsInfo":"滨兴小区",

                "tradeTime":"2019-05-28"

            },

            {

                "amount":2800,

                "goodsInfo":"滨苑小区",

                "tradeTime":"2019-06-08"

            }]

我从后台拿到一组数据是如果这样的,我要怎么提取出年份月份一样的,将其排在一起变成像下面那个数组,后面有效果图

newArray:[

                {

                    "tradeTime":[

                        {

                            "amount":5000,

                            "goodsInfo":"翡翠城租金",

                            "tradeTime":"2019-04-20"

                        },

                        {

                            "amount":1200,

                            "goodsInfo":"五联西苑租金",

                            "tradeTime":"2019-04-25"

                        },

                        {

                            "amount":200,

                            "goodsInfo":"爱与家宾馆",

                            "tradeTime":"2019-04-30"

                        }

                    ]

                },

                {

                    "tradeTime":[

                        {

                            "amount":3800,

                            "goodsInfo":"丁香花园",

                            "tradeTime":"2019-05-20"

                        },

                        {

                            "amount":2500,

                            "goodsInfo":"滨兴小区",

                            "tradeTime":"2019-05-28"

                        }

                    ]

                },

                {

                    "tradeTime":[

                        {

                            "amount":2800,

                            "goodsInfo":"滨苑小区",

                            "tradeTime":"2019-06-08"

                        }

                    ]

                }

            ]![图片描述][1]

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 2.5k
5 个回答
let array = [
                    {
                        "amount": 5000,
                        "goodsInfo": "翡翠城租金",
                        "tradeTime": "2019-04-20"
                    },
                    {
                        "amount": 5000,
                        "goodsInfo": "翡翠城租金2",
                        "tradeTime": "2019-04-20"
                    },
                    {
                        "amount": 1200,
                        "goodsInfo": "五联西苑租金",
                        "tradeTime": "2019-04-25"
                    },
                    {
                        "amount": 200,
                        "goodsInfo": "爱与家宾馆",
                        "tradeTime": "2019-04-30"
                    },
                    {
                        "amount": 3800,
                        "goodsInfo": "丁香花园",
                        "tradeTime": "2019-05-20"
                    },
                    {
                        "amount": 2500,
                        "goodsInfo": "滨兴小区",
                        "tradeTime": "2019-05-28"
                    },
                    {
                        "amount": 2500,
                        "goodsInfo": "滨兴小区2",
                        "tradeTime": "2019-05-28"
                    },
                    {
                        "amount": 2800,
                        "goodsInfo": "滨苑小区",
                        "tradeTime": "2019-06-08"
                    }
                ];

                let _obj={};
                for (let val of array) {
                    if (_obj.hasOwnProperty(val.tradeTime)) {
                        _obj[val.tradeTime].push(val);
                    }else {
                        _obj[val.tradeTime]=[];
                        _obj[val.tradeTime].push(val);
                    }
                }
                console.log(_obj);

把时间转化成时间戳,按照时间戳进行排序

var arr = [{
                "amount":5000,

                "goodsInfo":"翡翠城租金",

                "tradeTime":"2019-04-20"

            },

            {

                "amount":1200,

                "goodsInfo":"五联西苑租金",

                "tradeTime":"2019-04-25"

            },

            {

                "amount":200,

                "goodsInfo":"爱与家宾馆",

                "tradeTime":"2019-04-30"

            },

            {

                "amount":3800,

                "goodsInfo":"丁香花园",

                "tradeTime":"2019-04-20"

            },

            {

                "amount":2500,

                "goodsInfo":"滨兴小区",

                "tradeTime":"2019-05-28"

            },

            {

                "amount":2800,

                "goodsInfo":"滨苑小区",

                "tradeTime":"2019-06-08"

            }]


var map = {},
    dest = [];
for(var i = 0; i < arr.length; i++){
    var ai = arr[i];
    if(!map[ai.tradeTime]){
        dest.push({
            tradeTime: ai.tradeTime,  
            data: [ai]
        });
        map[ai.tradeTime] = ai;
    }else{
        for(var j = 0; j < dest.length; j++){
            var dj = dest[j];
            if(dj.tradeTime == ai.tradeTime){
                dj.data.push(ai);
                break;
            }
        }
    }
}
//可以稍微改造一下
console.log(dest)

这种应该是后端统一处理好了返给你吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题