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

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"

                        }

                    ]

                }

            ]![图片说明](https://img-ask.csdn.net/upload/201906/06/1559753903_651534.png)

我写了一个函数你可以看一下:

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-05-20"

            },

            {

                "amount": 2500,

                "goodsInfo": "滨兴小区",

                "tradeTime": "2019-05-28"

            },

            {

                "amount": 2800,

                "goodsInfo": "滨苑小区",

                "tradeTime": "2019-06-08"

            }
        ];
        sortByMonth(arr);

        function sortByMonth(arr) {
            var resultObj = {}; // 我觉得这个格式的更好用一些
            var resultArr = [];
            for (let i in arr) {
                let tradeTime = arr[i].tradeTime;
                tradeTime = tradeTime.slice(0, tradeTime.lastIndexOf('-'));
                if (!resultObj[tradeTime]) {
                    resultObj[tradeTime] = [];
                }
                resultObj[tradeTime].push(arr[i]);
            }
            for (let j in resultObj) {
                resultArr.push({
                    tradeTime: resultObj[j]
                });
            }
            return resultArr;
        }

一楼的也不错,用对象的唯一键区分
我写了另一种方法

let 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"
        }];
        let newArr = []; // 最终结果数组
        let timeArr = []; // 存储array中所有的日期种类
        array.forEach(item => {
            let time = item.tradeTime.replace(/^([0-9]{4}\-[0-9]{2}).*/g, "$1"); // 取出年和月 2019-xx
            if (timeArr.indexOf(time) == -1) { // 如果时间数组里没有当前的年月
                timeArr.push(time); // 时间数组添加此年月的种类
                newArr.push({"tradeTime":[]}); // 最终结果数组添加一个此种类空数组备用
            }
        })
        array.forEach(item => {
            let time = item.tradeTime.replace(/^([0-9]{4}\-[0-9]{2}).*/g, "$1"); // 取出年和月 2019-xx
            let index = timeArr.indexOf(time); // 获取此年月是第几种
            newArr[index].tradeTime.push(item); // 找到对应的种类push进去
        })
        console.log(newArr);