Remove undefined values from an array in JavaScript
This post will discuss how to remove undefined values from an array in JavaScript. The solution should return a new array that excludes the undefined values.
An array in JavaScript permits undefined values, null values, or any type of falsy values. There are several methods to filter these values from an array:
1. Remove all undefined values
An undefined value automatically gets assigned in JavaScript, where no value has been explicitly assigned. To remove all undefined values from the array, you can use the filter() method.
|
1 2 3 4 5 6 7 8 9 10 11 |
var arr = [ 0, 1, '', undefined, false, 2, undefined, null, , 3 ]; var filtered = arr.filter(function(x) { return x !== undefined; }); console.log(filtered); /* Output: [ 0, 1, '', false, 2, null, 3] */ |
Here’s a version using lambda expressions:
|
1 2 3 4 5 6 7 8 |
var arr = [ 0, 1, '', undefined, false, 2, undefined, null, , 3 ]; var filtered = arr.filter(x => x !== undefined); console.log(filtered); /* Output: [ 0, 1, '', false, 2, null, 3] */ |
2. Remove all nullish values
A nullish value is either null or undefined. To filters all nullish values from the array, you can use the != operator:
|
1 2 3 4 5 6 7 8 |
var arr = [ 0, 1, '', undefined, false, 2, undefined, null, , 3, NaN ]; var filtered = arr.filter(e => e != null); console.log(filtered); /* Output: [ 0, 1, '', false, 2, 3, NaN ] */ |
3. Remove all holes
To remove all holes from an array, the idea is to call the filter() method with a callback function that returns true. Note that this approach only remove holes from the array but doesn’t remove any of the other falsy values.
|
1 2 3 4 5 6 7 8 |
var arr = [0, , , 1, , , , , 2, , , , 3]; var filtered = arr.filter(() => true); console.log(filtered); /* Output: [ 0, 1, 2, 3 ] */ |
4. Remove all falsy values
There are 7 falsy values in JavaScript – false, zero (0), BigInt (0n), empty string ("", '', ``), null, undefined, and NaN. To filter out all the falsy values from the array, you can pass Boolean constructor to the filter() method:
|
1 2 3 4 5 6 7 8 |
var arr = [ 0, 1, '', undefined, false, 2, undefined, null, , 3, NaN ]; var filtered = arr.filter(Boolean); console.log(filtered); /* Output: [ 1, 2, 3 ] */ |
That’s all about removing undefined values from an array in JavaScript.
Thanks for reading.
To share your code in the comments, please use our online compiler that supports C, C++, Java, Python, JavaScript, C#, PHP, and many more popular programming languages.
Like us? Refer us to your friends and support our growth. Happy coding :)