![]() |
VOOZH | about |
Given an array with values and empty strings, our task is to remove empty strings from an array while keeping a record of the removed elements without using explicit loops.
Example:
Input: Array = ["hello", "", "world", "", "!", " "]; Output: Cleaned Array: [ 'hello', 'world', '!', ' ' ] Removed Elements: [ '', '' ]
Below are the approaches to remove empty strings from the array while keeping a record Without Loop in JavaScript:
Table of Content
In this approach, we usereduce to iterate through the array, accumulate non-empty strings in one array, and collect removed elements in another array.
Example: The below code example uses reduce to remove empty strings from array
Cleaned Array: [ 'hello', 'world', '!', ' ' ] Removed Elements: [ '', '' ]
Time complexity: O(n)
Auxiliary Space: O(n)
In this approach we use filter to create a cleaned array of non-empty strings and another filter to create an array of empty strings.
Example: The below code example is a practical implementation to remove empty strings from array using filter with map.
Cleaned Array: [ 'hello', 'world', '!', ' ' ] Removed Elements: [ '', '' ]
Time Complexity: O(n)
Auxiliary Space: O(n)
flatMapIn this approach, we use flatMap to create a combined operation of filtering and mapping, where we can conditionally return values or empty arrays, effectively achieving the desired result.
Example: The below code example uses flatMap to remove empty strings from the array:
Cleaned Array: [ 'hello', 'world', '!', ' ' ] Removed Elements: [ '', '' ]
Time Complexity: O(n)
Auxiliary Space: O(n)
The partition method is not a built-in JavaScript method but can be implemented as a custom utility function. This method can split an array into two arrays based on a predicate function, separating elements that satisfy the predicate from those that don't. Here, we'll use it to separate non-empty strings from empty strings.
Example:
Cleaned Array: [ 'hello', 'world', '!', ' ' ] Removed Elements: [ '', '' ]