I’m trying to remove the empty strings in my array.
This is my array:
JavaScript
x
2
1
let array = [{name:'John',age:'18',address:''},{name:'George',age:'',address:''},{name:'Kevin',age:'25',address:''}]
2
I would like to remove the empty string values ONLY if it’s empty in all objects.
desired outcome:
JavaScript
1
2
1
[{name:'John',age:'18'},{name:'George',age:''},{name:'Kevin',age:'25'}]
2
This is what I did but it removes EVERY empty string values:
JavaScript
1
4
1
for (let i = 0; i < array.length; i++) {
2
array[i] = Object.fromEntries(Object.entries(array[i]).filter(([_, v]) => v != ''));
3
}
4
Thanks in advance ,
Advertisement
Answer
If you don’t mind mutating the original array
object. Here’s a solution utilizing some array functions.
JavaScript
1
11
11
1
let array = [
2
{ name: 'John', age: '18', address: '' },
3
{ name: 'George', age: '', address: '' },
4
{ name: 'Kevin', age: '25', address: '' }
5
]
6
7
Object.keys(array[0])
8
.filter(k => array.every(obj => !obj[k]))
9
.forEach(k => array.forEach(obj => delete obj[k]));
10
11
console.log(array);