我试图找到一个下划线的单行代码,将一个集合转换为字典字典,以便以后快速访问。
示例:转换此
[
{a:'prop1', b:'subProp1', c:'first' },
{a:'prop1', b:'subProp2', c:'second'},
{a:'prop2', b:'subProp1', c:'third'},
{a:'prop2', b:'subProp2', c:'forth'}
]
进入这个
{
prop1 :
{
subProp1 : {a:'prop1', b:'subProp1', c:'first' },
subProp2 : {a:'prop1', b:'subProp2', c:'second'}
},
prop2 :
{
subProp1 : {a:'prop1', b:'subProp1', c:'third' },
subProp2 : {a:'prop1', b:'subProp2', c:'forth'}
}
}
我知道使用循环很容易,但我正在寻找一个可以提供下划线的整洁解决方案。
我已尝试过groupbBy和indexBy,但我仍然需要在某个地方使用循环,这是我试图避免的。
答案 0 :(得分:0)
感谢T.J Crowder _.reduce
做了诀窍:
_.reduce(collection, function (aggr, obj) {
aggr[obj.a] = aggr[obj.a] || {};
aggr[obj.a][obj.b] = obj;
return aggr;
}, {});