Sonu
Sonu

Reputation: 29

Remove object from nested array if array is empty in Typescript

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

Answers (2)

mike_t
mike_t

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

KL_
KL_

Reputation: 1513

You can use filter:

pokemonGroups = pokemonGroups.filter(group => group.pokemon.length != 0);

Upvotes: 1

Related Questions