| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Map/getOrInsert | [Back] [Original] |
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 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.
const map = new Map([["toto", "truc"]]);
console.log(map.getOrInsert("toto", "dfaut"));
// Sortie attendue : "truc"
console.log(map.getOrInsert("baz", "dfaut"));
// Sortie attendue : "dfaut"
getOrInsert(key, defaultValue)
keyLa cl de la valeur retourner depuis l'objet Map. Les cls des objets sont compares par rfrence, et pas par valeur.
defaultValueLa valeur insrer et retourner si la cl n'est pas dj prsente dans l'objet Map.
La valeur associe la cl dfinie dans l'objet Map. Si la cl n'est pas trouve, defaultValue est insr et retourn.
La mthode getOrInsert() est quivalente ce qui suit :
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) :
map.set(cle, map.get(cle) ?? valeurDefaut);
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.
map.getOrInsert(cle, []).push(valeur);
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 :
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");
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-map.prototype.getorinsert |
Map.prototype.getOrInsert dans core-js (angl.)Map.prototype.getOrInsert (angl.)MapMap.prototype.get()Map.prototype.set()Map.prototype.has()Map.prototype.getOrInsertComputed()Cette page a t modifie le 2 mars 2026 par les contributeurices du MDN.
MapObject/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |