通过lodash / underscore来区分对象数组的元素

时间:2017-10-11 03:28:38

标签: javascript underscore.js lodash

我输入的是一个像这样的对象数组:

var input = [
            {
                "id": 1,
                "price": 100
            },
            {
                "id": 2,
                "price": 3000
            },
            {
                "id": 4,
                "price": 200
            },
            {
                "id": 8,
                "price": 200
            }

        ]

我想区分元素以获得输出:

var output = [
            {
                "id": "1",
                "price": 100
            },
            {
                "id": "2",
                "price": 3000
            },
            {
                "id": "4_8",
                "price": 200
            }

        ]

来自lodash。 我真的需要你的帮助,非常感谢你

1 个答案:

答案 0 :(得分:0)

在Lodash中,您可以使用_.groupBy后跟_.map

var input = [{"id":1,"price":100},
             {"id":2,"price":3000},
             {"id":4,"price":200},
             {"id":8,"price":200}];

var output = _(input)
  .groupBy('price')
  .map((vs, k) => ({
      id: _.map(vs, 'id').join('_'),
      price: +k
  }))
  .value();
    
console.log(output);
.as-console-wrapper { min-height: 100% }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>