使用lodash\uz.groupBy格式化json对象时出现问题

使用lodash\uz.groupBy格式化json对象时出现问题,json,ecmascript-6,lodash,Json,Ecmascript 6,Lodash,我在重新格式化对象以按列表分组时遇到问题 // input { 'M': [ {name: Bob, id: 1}, {name: John, id: 2}, {name: John, id: 3}, ], 'F': [ {name: Liz, id: 4}, {name: Mary, id: 5}, {name: Mary, id: 6}, ] } // desi

我在重新格式化对象以按列表分组时遇到问题

// input 
{
    'M': [
        {name: Bob, id: 1},
        {name: John, id: 2},
        {name: John, id: 3},
    ],
    'F': [
        {name: Liz, id: 4},
        {name: Mary, id: 5},
        {name: Mary, id: 6},
    ]
}

// desired output
{
    'M': [
        'Bob': [ {name: Bob, id: 1},]
        'John': [ {name: John, id: 2}, {name: John, id: 3} ]
    ],
    'F': [
        'Liz': [ {name: Liz, id: 4} ]
        'Mary': [ {name: Mary, id: 5}, {name: Mary, id: 6} ]
    ]
}
我当前的脚本只返回'M'键,我不知道是什么导致了它

for (var key in obj) {
    var data = _.groupBy(obj[key], 'name')
    return data;
}
我也试过了

  Object.keys(obj).forEach(obj, key => {
    var data = _.groupBy(obj[key], 'name')
    return data;
  }) 
但是它抛出了
TypeError:#不是一个函数

您可以通过它按姓名对每个性别组进行分组

var输入={
“M”:[
{name:'Bob',id:1},
{姓名:'John',id:2},
{姓名:'John',id:3},
],
“F”:[
{name:'Liz',id:4},
{姓名:'Mary',id:5},
{姓名:'Mary',id:6},
]
};
var输出=u0.mapValues(输入,名称=>0.groupBy(名称,'name'));
控制台日志(输出)
body>div{min height:100%;top:0;}

使用u.forOwn,因为您要迭代它自己的属性

_.forOwn(obj, function(key, val) {
    var ret = {};
    ret[key] = _.groupBy(val, 'name');
    return ret;
});
_.forOwn(obj, function(key, val) {
    var ret = {};
    ret[key] = _.groupBy(val, 'name');
    return ret;
});