Recherche…
Syntaxe
- nouvelle carte ([itérable])
- map.set (clé, valeur)
- map.get (clé)
- taille de la carte
- map.clear ()
- map.delete (clé)
- map.entries ()
- map.keys ()
- map.values ()
- map.forEach (rappel [, thisArg])
Paramètres
Paramètre | Détails |
---|---|
iterable | Tout objet itérable (par exemple un tableau) contenant [key, value] paires [key, value] . |
key | La clé d'un élément. |
value | La valeur attribuée à la clé. |
callback | La fonction de rappel est appelée avec trois paramètres: valeur, clé et carte. |
thisArg | Valeur qui sera utilisée comme this lors de l' exécution de callback . |
Remarques
Dans Maps, NaN
est considéré comme identique à NaN
, même si NaN !== NaN
. Par exemple:
const map = new Map([[NaN, true]]);
console.log(map.get(NaN)); // true
Créer une carte
Une carte est un mappage de base des clés aux valeurs. Les cartes sont différentes des objets en ce sens que leurs clés peuvent être n'importe quoi (valeurs primitives ainsi que des objets), pas seulement des chaînes et des symboles. L'itération sur les cartes est également toujours effectuée dans l'ordre dans lequel les éléments ont été insérés dans la carte, tandis que l'ordre n'est pas défini lors d'une itération sur des clés dans un objet.
Pour créer une carte, utilisez le constructeur Map:
const map = new Map();
Il a un paramètre facultatif, qui peut être n'importe quel objet itérable (par exemple un tableau) qui contient des tableaux de deux éléments - le premier est la clé, les secondes la valeur. Par exemple:
const map = new Map([[new Date(), {foo: "bar"}], [document.body, "body"]]);
// ^key ^value ^key ^value
Effacer une carte
Pour supprimer tous les éléments d'une carte, utilisez la méthode .clear()
:
map.clear();
Exemple:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.size); // 2
map.clear();
console.log(map.size); // 0
console.log(map.get(1)); // undefined
Supprimer un élément d'une carte
Pour supprimer un élément d'une carte, utilisez la méthode .delete()
.
map.delete(key);
Exemple:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.get(3)); // 4
map.delete(3);
console.log(map.get(3)); // undefined
Cette méthode renvoie true
si l'élément existe et a été supprimé, sinon false
:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.delete(1)); // true
console.log(map.delete(7)); // false
Vérifier si une clé existe dans une carte
Pour vérifier si une clé existe dans une carte, utilisez la méthode .has()
:
map.has(key);
Exemple:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.has(1)); // true
console.log(map.has(2)); // false
Cartes itératives
Map a trois méthodes qui retournent des itérateurs: .keys()
, .values()
et .entries()
. .entries()
est l'itérateur de carte par défaut et contient [key, value]
paires [key, value]
.
const map = new Map([[1, 2], [3, 4]]);
for (const [key, value] of map) {
console.log(`key: ${key}, value: ${value}`);
// logs:
// key: 1, value: 2
// key: 3, value: 4
}
for (const key of map.keys()) {
console.log(key); // logs 1 and 3
}
for (const value of map.values()) {
console.log(value); // logs 2 and 4
}
La carte a également la méthode .forEach()
. Le premier paramètre est une fonction de rappel qui sera appelée pour chaque élément dans la carte, et le deuxième paramètre est la valeur qui sera utilisée comme this
lors de l' exécution de la fonction de rappel.
La fonction de rappel a trois arguments: valeur, clé et objet carte.
const map = new Map([[1, 2], [3, 4]]);
map.forEach((value, key, theMap) => console.log(`key: ${key}, value: ${value}`));
// logs:
// key: 1, value: 2
// key: 3, value: 4
Obtenir et définir des éléments
Utilisez .get(key)
pour obtenir une valeur par clé et .set(key, value)
pour attribuer une valeur à une clé.
Si l'élément avec la clé spécifiée n'existe pas dans la carte, .get()
renvoie undefined
.
.set()
méthode .set()
renvoie l'objet map, vous pouvez donc enchaîner les .set()
.
const map = new Map();
console.log(map.get(1)); // undefined
map.set(1, 2).set(3, 4);
console.log(map.get(1)); // 2
Obtenir le nombre d'éléments d'une carte
Pour obtenir le nombre d'éléments d'une carte, utilisez la propriété .size
:
const map = new Map([[1, 2], [3, 4]]);
console.log(map.size); // 2