map est un type de référence ; map (set) est un nouveau type de données de référence dans es6, qui représente la relation de mappage des données. Les données du type de données de collection de cartes sont stockées de manière « clé/valeur ». Vous pouvez utiliser les propriétés de l'objet comme clé et utiliser les propriétés pour référencer la valeur. La carte peut être créée en utilisant new, par exemple « const ». maCarte = new Map();" .
L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 6, ordinateur Dell G3.
map est un type de référence.
Avant ES6, l'implémentation de « clé » => « valeur » en JavaScript, qui est ce que nous appelons souvent les paires clé-valeur, était réalisée à l'aide d'Object. Cependant, cette méthode d'implémentation pose des problèmes dans des scénarios particuliers. ES6 a introduit un nouveau type de collection appelé Map, qui apporte au langage un véritable mécanisme de stockage de paires clé-valeur.
map (set) est un nouveau type de données de référence dans es6, qui représente la relation de mappage des données ; les données dans le type de données de collection de cartes sont stockées sous la forme de "clé/valeur", et vous pouvez utiliser les propriétés de l'objet comme clé. Utilisez Propriétés pour référencer des valeurs.
Utiliser le mot-clé new
pour instancier une cartenew
关键字来实例一个map
let m = new Map(); console.log(m); // Map(0) {}
创建时初始化:
传入一个二维数组参数(可迭代对象,内部以数组的方式传入键值)
每个子数组,第一个元素是map对应的key
, 第二个元素是map对应的value
let m = new Map([[{}, 222], [{}, '123']]); console.log(m); // Map(2) { {} => 222, {} => '123' }
通过set()方法添加,传入两个参数,第一个传入映射的键,第二个传入映射的值。返回的是该映射集合(意味着可以链式添加)
let m = new Map(); m.set('prop', '值'); console.log(m); // Map(1) { 'prop' => '值' }
链式添加键值
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); console.log(m); // Map(3) { 'prop' => '值', 'prop2' => false, 'num' => { id: 13 } }
使用size
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); console.log(m.size);
clé
correspondant à la carte, et le deuxième élément est la valeur</code > correspondant à la map</a><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">let m = new Map();
m.set(&#39;prop&#39;, &#39;值&#39;).set(&#39;prop2&#39;, false).set(&#39;num&#39;, {id: 13});
console.log(m.get(&#39;prop2&#39;));
// false</pre><div class="contentsignin">Copier après la connexion</div></div> <strong><a id="12_Map_Api_24"></strong></h3><p>1-2 Map Api</p><h3><a id="124__66"></a><a id="121__25"><strong></strong>1-2-1 Ajouter des éléments de cartographie</h3><p></p>Ajouter via la méthode set(), passez deux paramètres, le premier est la clé de la carte et le second est la valeur de la carte. Ce qui est renvoyé est l'ensemble de mappages (ce qui signifie qu'il peut être ajouté dans une chaîne)<h3><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">let m = new Map();
m.set(&#39;prop&#39;, &#39;值&#39;).set(&#39;prop2&#39;, false).set(&#39;num&#39;, {id: 13});
m.delete(&#39;prop2&#39;);
// true
console.log(m.get(&#39;prop2&#39;), m.size);
// undefined 2</pre><div class="contentsignin">Copier après la connexion</div></div><a id="125__80">Valeur de clé enchaînée</a><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">let m = new Map();
m.set(&#39;prop&#39;, &#39;值&#39;).set(&#39;prop2&#39;, false).set(&#39;num&#39;, {id: 13});
m.delete(&#39;prop2&#39;);
// true
console.log(m.has(&#39;prop2&#39;), m.has(&#39;num&#39;));
// false true</pre><div class="contentsignin">Copier après la connexion</div></div><strong><a id="122__45"></strong></h3>1-2-2 longueur de l'ensemble de mappages<p></p><h3>Utilisez <code > L'attribut size
peut obtenir le nombre d'éléments dans la collection actuellelet m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); m.clear(); // true console.log(m); // Map(0) {}
Récupérer l'élément via la méthode get() et transmettre la clé Supprimer un élément de la collection mappée via la méthode delete() et renvoyer une valeur booléenne indiquant le succès ou l'échec de la suppression 1- 2-5 Détecter si l'élément existe Utilisez la méthode has() pour détecter si l'élément cible existe et renvoyer la valeur booléenne du résultat de la détectionrrreee map peut itérer les éléments en fonction de l'ordre d'insertion Utilisation de la mémoireLes différences dans les navigateurs entraîneront une utilisation différente de la mémoire des deux méthodes de stockage. Cependant, étant donné la taille de la mémoire, la carte stocke environ 50. % de paires clé-valeur en plus que Object 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!let m = new Map();
m.set('prop', '值').set('prop2', false).set('num', {id: 13});
console.log(m.entries === m[Symbol.iterator]);// true
for(let k1 of m.entries()){
console.log(k1);
// [ 'prop', '值' ]
// [ 'prop2', false ]
// [ 'num', { id: 13 } ]
// 遍历的属性即对应映射元素的键值对数组
}
for(let k2 of m.keys()){
console.log(k2);
// prop
// prop2
// num
// 遍历的属性对应映射元素的键
}
for(let k3 of m.values()){
console.log(k3);
// 值
// false
// { id: 13 }
// 遍历的属性对应映射元素的值
}
for(let k4 of m[Symbol.iterator]()){
console.log(k4);
// [ 'prop', '值' ]
// [ 'prop2', false ]
// [ 'num', { id: 13 } ]
// 遍历的属性即对应映射元素的键值对数组
}
rrreee
1-2-6 Méthode d'effacement de l'élément
Utilisez la méthode clear() pour effacer tous les éléments et renvoyez la valeur booléenne d'une effacement réussie Value1-3 Séquence et itération
rrreee
1-4 Comparaison avec l'objet