如何使用lodash从数组中获取多个键值?

时间:2017-02-03 03:07:49

标签: javascript ecmascript-6 lodash

我在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代码完成?

4 个答案:

答案 0 :(得分:3)

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

Example Here

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:1)

您不需要图书馆。

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

答案 3 :(得分:0)

一种执行此操作的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