使用 lodash 合并数组

用户10799821

我有一组对象数组:

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通过CategoryNameflatMap结果通过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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章