Removing undefined values from Array
You can use lodash compact
method, which removes null
, undefined
and ''
.
_.compact(data)
To use Array.prototype.filter
here might be obvious. So to remove only undefined values we could call
var data = [42, 21, undefined, 50, 40, undefined, 9];
data = data.filter(function( element ) {
return element !== undefined;
});
If we want to filter out all the falsy values (such as 0 or null) we can use return !!element;
instead.
But we can do it slighty more elegant, by just passing the Boolean
constructor function, respectively the Number
constructor function to .filter
:
data = data.filter( Number );
That would do the job in this instance, to generally remove any falsy value, we would call
data = data.filter( Boolean );
Since the Boolean()
constructor returns true
on truthy values and false
on any falsy value, this is a very neat option.
Inline using lambda
result.filter(item => item);