数组对象根据对象属性进行分组(二维数组)

756 阅读1分钟

1.png

该方法是将数组对象里的对象属性进行分类,最终出输一个二维的数据格式,item.roomName 是返回所需要的分组的对象。

this.sortRoomName = function (sortData) {
        const groupBy = (array, f) => {
            let groups = {};
            array.forEach(o => {
                let group = JSON.stringify(f(o));
                groups[group] = groups[group] || [];
                groups[group].push(o);
            });
            return Object.keys(groups).map((group) => {
                return groups[group];
            })
        };
        const sorted = groupBy(sortData, (item) => {
            return item.roomName; // 返回需要分组的对象;
        })
        return sorted;
    }