【问题标题】:How to get multiple key values from array with lodash?如何使用 lodash 从数组中获取多个键值?
【发布时间】:2017-02-03 03:07:49
【问题描述】:

我在 javascript 中有以下对象:

var users = [{
    'user': 'barney',
    'age': 36,
    'active': true
}, {
    'user': 'fred',
    'age': 40,
    'active': false
}, {
    'user': 'pebbles',
    'age': 1,
    'active': true
}];

我想从上面的对象中获取一个新对象,但删除 active 键,如下所示:

var users = [{
        'user': 'barney',
        'age': 36,
    }, {
        'user': 'fred',
        'age': 40,
    }, {
        'user': 'pebbles',
        'age': 1,
    }];

我知道我可以通过 for 循环创建对象,但我正在寻找一种更好的方法来做到这一点。是否可以通过一行lodash代码完成?

【问题讨论】:

标签: javascript ecmascript-6 lodash


【解决方案1】:

如果您可以使用最新的 JavaScript 功能...

users = users.map(({ active, ...rest }) => rest);

https://jsfiddle.net/22kqjvc5/1/

【讨论】:

  • 1+ - 不错!这是扩展运算符的一个非常聪明的用法。
【解决方案2】:

您可以将_.map_.omit 结合使用,以省略active 属性:

Example Here

_.map(users, user => _.omit(user, 'active'))

【讨论】:

    【解决方案3】:

    您不需要图书馆。

    var result = users.map(el => {
       delete el.active;
       return el;
    });
    

    【讨论】:

      【解决方案4】:

      一种 ES6 方法

      var users = [{
          'user': 'barney',
          'age': 36,
          'active': true
        }, {
          'user': 'pebbles',
          'age': 1,
          'active': true
      }];
      
      console.log ( _.map(users, i => _.pick(i, 'user', 'active'))  )
      <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.core.js"></script>

      Inspired by this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-25
        相关资源
        最近更新 更多