J'ai une carte avec cette structure:
{
1: {},
2: {}
}
Et j'aimerais en supprimer 2: {} (bien sûr - retourner une nouvelle collection sans cela). Comment puis-je le faire? J'ai essayé, mais quelque chose ne va pas:
theFormerMap.deleteIn([],2) //[] should mean that it's right in the root of the map, and 2 is the name of the object I want to get rid of
Utilisez simplement la méthode delete et la propriété entre guillemets:
theFormerMap = theFormerMap.delete("2")
Utilisez simplement la méthode delete et passez la propriété que vous souhaitez supprimer:
theFormerMap = theFormerMap.delete(2)
Si cela ne fonctionne pas, vous avez probablement créé theFormerMap
en utilisant fromJS
:
Immutable.fromJS({1: {}, 2: {}}).delete(2)
=> Map { "1": Map {}, "2": Map {} }
La clé 2 n'est pas supprimée car il s'agit en fait d'une clé de chaîne. La raison en est que les objets javascript convertissent les clés numériques en chaînes.
Cependant, Immutable.js prend en charge les cartes avec des clés entières si vous les construisez sans utiliser fromJS
:
Immutable.Map().set(1, Immutable.Map()).set(2, Immutable.Map()).delete(2)
=> Map { 1: Map {} }