JS 根据某个属性对数据进行分组

/**
 * 根据共同属性将数据分组
 * @param data [数据源]
 * @param field [字段名]
 */
const groupingData = (data, filed) => {
    let map = {};
    let dest = [];
    data.forEach(item => {
        if(!map[item[filed]]) {
            dest.push({
                [filed]: item[filed],
                list: [item]
            });
            map[item[filed]] = item;
        } else {
            dest.forEach(dItem => {
                if (dItem[filed] == item[filed]) {
                    dItem.list.push(item);
                }
            });
        }
    })
    return dest;
}

例如根据时间进行分组,结果如下:

 

posted @ 2021-12-21 15:33  卡农的忧伤ろ◆  阅读(357)  评论(0)    收藏  举报