我有一组对象数组:
let x = [{
CategoryName: 'abc',
Items: ['3A']
},
{
CategoryName: 'xyz',
Items: ['5Z']
},
{
CategoryName: 'abc',
Items: ['6B']
},
{
CategoryName: 'abc',
Items: ['9C']
},
{
CategoryName: 'xyz',
Items: ['1X']
}
];
我想要的是:
[
{CategoryName:'abc',Items['3A','6B','9C']},
{CategoryName:'xyz',Items['1X','5Z']}
]
我怎样才能实现这一目标lodash
?
您可以group
通过CategoryName和flatMap
结果通过Items
. 就是这样!
_(x).groupBy('CategoryName').map((v, k)=> ({CategoryName: k, Items: _.flatMap(v, 'Items')})).value()
工作演示:
let x = [{"CategoryName":"abc","Items":["3A"]},{"CategoryName":"xyz","Items":["5Z"]},{"CategoryName":"abc","Items":["6B"]},{"CategoryName":"abc","Items":["9C"]},{"CategoryName":"xyz","Items":["1X"]}],
res;
res = _(x).groupBy('CategoryName').map((v, k)=> ({CategoryName: k, Items: _.flatMap(v, 'Items')})).value();
console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句