Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Depuis February 2026, cette fonctionnalité fonctionne sur les appareils et les versions de navigateur les plus récents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.
La méthode getOrInsert() des instances de Map retourne la valeur correspondant à la clé définie dans cette Map. Si la clé n'est pas présente, elle insère une nouvelle entrée avec la clé et une valeur par défaut donnée, puis retourne la valeur insérée.
Si le calcul de la valeur par défaut est coûteux, envisagez d'utiliser Map.prototype.getOrInsertComputed() à la place, qui prend une fonction de rappel pour calculer la valeur par défaut uniquement si elle est réellement nécessaire.
La clé de la valeur à retourner depuis l'objet Map. Les clés des objets sont comparées par référence, et pas par valeur.
defaultValueLa valeur à insérer et à retourner si la clé n'est pas déjà présente dans l'objet Map.
La valeur associée à la clé définie dans l'objet Map. Si la clé n'est pas trouvée, defaultValue est inséré et retourné.
La méthode getOrInsert() est équivalente à ce qui suit :
C'est également similaire au modèle suivant (qui est légèrement moins fiable si null ou undefined sont des valeurs valides dans vos tableaux associatifs) :
Dans un tableau associatif où chaque clé est associée à un tableau de valeurs, vous pouvez utiliser getOrInsert() pour vous assurer que le tableau existe pour une clé donnée avant d'essayer d'y ajouter une nouvelle valeur.
Vous pouvez utiliser getOrInsert() pour vous assurer qu'une clé existe dans un tableau associatif, même si vous n'avez pas encore besoin de sa valeur. Cela permet généralement de normaliser les entrées des utilisateur·ice·s.
Imaginez que vous avez un tableau associatif des préférences des utilisateur·ice·s, et que vous voulez vous assurer qu'une certaine préférence est toujours définie sur une valeur par défaut si l'utilisateur·ice ne l'a pas définie :
| ECMAScript® 2027 Language Specification # sec-map.prototype.getorinsert |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 2 mars 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.