Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 590
Joey Yi Zhao Avatar asked Apr 27 '26 12:04

Joey Yi Zhao


2 Answers

If you can use the latest JavaScript features...

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

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

like image 69
Tom Coughlin Avatar answered Apr 30 '26 01:04

Tom Coughlin


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

like image 37
bereket gebredingle Avatar answered Apr 30 '26 01:04

bereket gebredingle



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!