Reputation: 29
How can I remove the object if the nested array is empty. Like I have an array:
pokemonGroups = [
{
name: 'Grass',
pokemon: [
'bulbasaur-0', 'Bulbasaur', 'oddish-1','Oddish','bellsprout-2', 'Bellsprout'
]
},
{
name: 'Water',
pokemon: [
]
}]
So In this we have an empty array
{
name: 'Water',
pokemon: []
}
So I want to remove this object and my array should be like:
pokemonGroups = [
{
name: 'Grass',
pokemon: [
'bulbasaur-0', 'Bulbasaur', 'oddish-1','Oddish','bellsprout-2', 'Bellsprout'
]
}
]
Upvotes: 0
Views: 664
Reputation: 2691
You can iterate your array and use array.splice()
var pokemonGroups = [{
name: 'Grass',
pokemon: [
'bulbasaur-0', 'Bulbasaur', 'oddish-1', 'Oddish', 'bellsprout-2', 'Bellsprout'
]
},
{
name: 'Water',
pokemon: [
]
}
]
for (var i = 0; i < pokemonGroups.length; i++) {
if (pokemonGroups[i]['pokemon'].length == 0) {
pokemonGroups.splice(i, 1);
}
}
console.log(pokemonGroups)
Upvotes: 1
Reputation: 1513
You can use filter:
pokemonGroups = pokemonGroups.filter(group => group.pokemon.length != 0);
Upvotes: 1