How can I remove object from array, with Lodash?
25,830
Solution 1
require('lodash')()
Calling the lodash
function (by ()
) creates a LoDash object that wraps undefined
.
That's not what you want; you want the lodash
function itself, which contains static methods.
Remove that.
Solution 2
_.remove() is a good option.
var rooms = [
{ channel: 'room-a', name: 'test' },
{ channel: 'room-b', name: 'test' }
];
_.remove(rooms, {channel: 'room-b'});
console.log(rooms); //[{"channel": "room-a", "name": "test"}]
<script src="https://cdn.jsdelivr.net/lodash/4.14.2/lodash.min.js"></script>
Solution 3
I'd go for reject() in this scenario. Less code:
var result = _.reject(rooms, { channel: 'room-a', name: 'test' });
Author by
Fábio Zangirolami
Updated on February 19, 2020Comments
-
Fábio Zangirolami about 4 years
I'm trying to remove an object from an array using Lodash.
In
server.js
(using NodeJS):var lodash = require('lodash')(); var rooms = [ { channel: 'room-a', name: 'test' }, { channel: 'room-b', name: 'test' } ]
I tried with two commands and it did not work:
var result = lodash.find(rooms, {channel: 'room-a', name:'test'}); var result = lodash.pull(rooms, lodash.find(rooms, {channel: 'room-a', name:'test'}));
Here's the output of
console.log(result)
:LodashWrapper { __wrapped__: undefined, __actions__: [ { func: [Function], args: [Object], thisArg: [Object] } ], __chain__: false, __index__: 0, __values__: undefined }
Can someone help me? Thank you!
-
Fábio Zangirolami almost 8 yearsuoooWoww impressive, I do not have much knowledge, but it was just a detail! so I thought well with my code, it worked like a charm! thankyou @SLaks !!!!
-
SLaks almost 8 yearsFor more details about LoDash wrapper objects (for chaining), see their docs.
-
Bernardo Dal Corno almost 6 yearsThat wasn't clear in the docs! Was trying to combine with
filter
to no success