使用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;
});