简体   繁体   中英

How to get multiple key values from array with lodash?

I have below object in javascript:

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

I want to get a new object from above object but remove active key like below:

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

I know that I can create the object by a for-loop, but I am looking for a better way to do that. Whether it can be done by one line of lodash code?

You could use _.map in combination with _.omit in order to omit the active property:

Example Here

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

If you can use the latest JavaScript features...

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

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

You don't need a library.

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

An ES6 way to do this

 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM