【问题标题】:get distinguish element of an array of object by lodash/underscore通过 lodash/underscore 获取对象数组的区分元素
【发布时间】:2023-03-12 00:55:02
【问题描述】:

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

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。 我真的需要你的帮助,非常感谢你

【问题讨论】:

  • 嗨,欢迎来到堆栈溢出。请参阅How to Ask 链接以获取有关如何提出问题并相应更新您的问题的更多详细信息。

标签: javascript underscore.js lodash


【解决方案1】:

在 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>

【讨论】:

  • 你能帮我解决从输出到输入的反向问题吗? @4castle,非常感谢你
  • @Blueskyy 您可以在id 的回调内的id 字段上使用_.flatMap 进行反向操作。 (注意:这不是一个代码编写网站。问题需要表明努力和尝试的具体问题)
猜你喜欢
  • 2017-10-25
  • 2013-09-02
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-06
  • 2014-09-22
相关资源
最近更新 更多