【问题标题】:How to groupBy in multi arrays using lodash如何使用 lodash 在多个数组中进行分组
【发布时间】:2019-07-25 04:10:34
【问题描述】:

我想对数组中的子工作进行分组

这是我要按子工作分组的数组

 result =   [
        {
            "date": "10-07-2019",
            "data": [
                {
                    "data_id": "20",
                    "work": "work_1",
                    "sub-work": "sub_work1",
                    "sub-data": [
                        {
                            "id": 7,
                            "title": 'subdata-1',
                        }
                    ]
                }
            ]
        },
        {
            "date": "12-07-2019",
            "data": [
                {
                    "data_id": "20",
                    "work": "work_1",
                    "sub-work": "sub_work1",
                    "sub-data": [
                        {
                            "id": 7,
                            "title": 'subdata-1',
                        }
                    ]
                }
            ]
        },
    ]

这是我的尝试

result = _(result)
            .map(function(items, data) {
                _.groupBy(items.data, function({ sub_work }) {
                    return sub_work;
                });
            })
            .value();

首先我将结果映射到数据然后我尝试分组但它返回 null

更新

我希望我的输出看起来像这样

 [
    {
        "date": "10-07-2019",
        sub-work: [{
            sub-work : "sub_work1",
            sub-data[
                {
                     "id": 7,
                        "title": 'subdata-1',
                }
            ]
        }]
    }
]

.......................

【问题讨论】:

    标签: javascript arrays lodash


    【解决方案1】:

    如果你能提供你预期的结果会更好。

    以下是我可以推断的:

    _(result)
        .map(function(obj) { // Convert into a 2D array.
            return obj.data.map(e => Object.assign(e, {date: obj.date})); 
        })
        .flatten() // We have an array of objects now.
        .groupBy('sub-work') // We can call groupBy().
        .value();
    

    这是你得到的:

    {
        "sub_work1": [{
            "data_id": "20",
            "work": "work_1",
            "sub-work": "sub_work1",
            "sub-data": [{
                "id": 7,
                "title": "subdata-1"
            }],
            "date": "10-07-2019"
        }, {
            "data_id": "20",
            "work": "work_1",
            "sub-work": "sub_work1",
            "sub-data": [{
                "id": 7,
                "title": "subdata-1"
            }],
            "date": "12-07-2019"
        }]
    }
    

    【讨论】:

    • 是否可以在 sub_work 之外获取日期?我将在我的问题中更新我的数据结构
    猜你喜欢
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多