[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Map/getOrInsert [Back]  [Original]

Map : mthode getOrInsert() - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Map : mthode getOrInsert()

Baseline 2026
Nouvellement disponible

Depuis fvrier 2026, cette fonctionnalit fonctionne sur les appareils et les versions de navigateur les plus rcents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.

La mthode getOrInsert() des instances de Map retourne la valeur correspondant la cl dfinie dans cette Map. Si la cl n'est pas prsente, elle insre une nouvelle entre avec la cl et une valeur par dfaut donne, puis retourne la valeur insre.

Si le calcul de la valeur par dfaut est coteux, envisagez d'utiliser Map.prototype.getOrInsertComputed() la place, qui prend une fonction de rappel pour calculer la valeur par dfaut uniquement si elle est rellement ncessaire.

Dans cet article

Exemple interactif

const map = new Map([["toto", "truc"]]);
console.log(map.getOrInsert("toto", "dfaut"));
// Sortie attendue : "truc"

console.log(map.getOrInsert("baz", "dfaut"));
// Sortie attendue : "dfaut"

Syntaxe

js
getOrInsert(key, defaultValue)

Paramtres

key

La cl de la valeur retourner depuis l'objet Map. Les cls des objets sont compares par rfrence, et pas par valeur.

defaultValue

La valeur insrer et retourner si la cl n'est pas dj prsente dans l'objet Map.

Valeur de retour

La valeur associe la cl dfinie dans l'objet Map. Si la cl n'est pas trouve, defaultValue est insr et retourn.

Description

La mthode getOrInsert() est quivalente ce qui suit :

js
if (map.has(cle)) {
  return map.get(cle);
}
map.set(cle, valeurDefaut);
return valeurDefaut;

C'est galement similaire au modle suivant (qui est lgrement moins fiable si null ou undefined sont des valeurs valides dans vos tableaux associatifs) :

js
map.set(cle, map.get(cle) ?? valeurDefaut);

Exemples

Tableaux associatifs multiples

Dans un tableau associatif o chaque cl est associe un tableau de valeurs, vous pouvez utiliser getOrInsert() pour vous assurer que le tableau existe pour une cl donne avant d'essayer d'y ajouter une nouvelle valeur.

js
map.getOrInsert(cle, []).push(valeur);

Appliquer des valeurs par dfaut

Vous pouvez utiliser getOrInsert() pour vous assurer qu'une cl existe dans un tableau associatif, mme si vous n'avez pas encore besoin de sa valeur. Cela permet gnralement de normaliser les entres des utilisateurices.

Imaginez que vous avez un tableau associatif des prfrences des utilisateurices, et que vous voulez vous assurer qu'une certaine prfrence est toujours dfinie sur une valeur par dfaut si l'utilisateurice ne l'a pas dfinie :

js
const options = readConfig();
options.getOrInsert("theme", "light");
options.getOrInsert("fontSize", 14);

// Plus tard dans votre code, vous pouvez supposer en toute scurit que ces options existent
document.body.dataset.theme = options.get("theme");

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-map.prototype.getorinsert

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page