Reputation: 42484
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?
Upvotes: 3
Views: 13019
Reputation: 12996
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>
Upvotes: 4
Reputation: 15372
You don't need a library.
var result = users.map(el => {
delete el.active;
return el;
});
Upvotes: 3
Reputation: 463
If you can use the latest JavaScript features...
users = users.map(({ active, ...rest }) => rest);
https://jsfiddle.net/22kqjvc5/1/
Upvotes: 5
Reputation: 240908
You could use _.map
in combination with _.omit
in order to omit the active
property:
_.map(users, user => _.omit(user, 'active'))
Upvotes: 3