Maison  >  Article  >  interface Web  >  Explication détaillée des instances Map et Set en JavaScript

Explication détaillée des instances Map et Set en JavaScript

零下一度
零下一度original
2017-06-26 10:12:091238parcourir

Carte

 Map est une structure de paires clé-valeur et a une vitesse de recherche extrêmement rapide.

Définition de la carte.

//空map设值key-valuevar m = new Map();
m.set("XiaoMing",99);
m.set("XiaoHong",66);//构造参数传key-valuevar m = new Map([['XiaoMing', 99], ['XiaoHong', 66]]);

Méthodes dans Map

var m = new Map(); // 空Mapm.set('XiaoMing', 99); // 添加新的key-valuem.has('XiaoMing'); // 是否存在key 'XiaoMing': truem.get('XiaoMing'); // 99m.delete('XiaoMing'); // 删除key 'XiaoMing'm.get('XiaoMing'); // undefined

En définissant à plusieurs reprises une valeur pour une clé, la valeur suivante écrasera la valeur précédente.

var m = new Map();
m.set('XiaoMing', 99);
m.set('XiaoMing', 98);
m.get('XiaoMing'); // 98

Set

Set est similaire à Map, mais set stocke les clés et les clés ne sont pas répétées.

Création de Set.

var s1 = new Set(); // 空Sets1.add(1);
s1.add(2);
s1.add(3);var s2 = new Set([1, 2, 3]); // 含1, 2, 3

Insérer les valeurs en double, set filtrera les valeurs en double

 s =  Set([1, 2, 33>>s; s.delete(3);
>>s;

Mapper et définir le parcours

Array peut utiliser des indices pour le parcours de boucle, mais Map et Set ne peuvent pas utiliser d'indices. Afin d'unifier les types de collections, la norme ES6 a introduit le type itérable Array, Map et Set appartiennent tous au type itérable.

Les collections de type iterable peuvent être parcourues via une nouvelle boucle for ... of.

var a = ['A', 'B', 'C'];var s = new Set(['A', 'B', 'C']);var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);for (var x of a) { // 遍历Array    alert(x);
}for (var x of s) { // 遍历Set    alert(x);
}for (var x of m) { // 遍历Mapalert(x[0] + '=' + x[1]);
}

Meilleur parcours : forEach

forEach est une méthode intégrée d'itérable, qui reçoit un function , cette fonction est automatiquement rappelée à chaque itération.

var a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {// element: 指向当前元素的值// index: 指向当前索引// array: 指向Array对象本身    alert(element);
});

 Set est similaire à Array, mais Set n'a pas d'index, donc les deux premiers paramètres de la fonction de rappel sont les éléments eux-mêmes :

var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
    alert(element);
});

Les paramètres de la fonction de rappel de Map sont value, key et map lui-même :

var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
    alert(value);
});

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn