La carte es6 est-elle un type de référence ?

青灯夜游
Libérer: 2023-01-11 16:59:00
original
1549 Les gens l'ont consulté

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();" .

La carte es6 est-elle un type de référence ?

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.

es6 map

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.

1-1 Créer une carte

Utiliser le mot-clé new pour instancier une cartenew关键字来实例一个map

let m = new Map();

console.log(m);
// Map(0) {}
Copier après la connexion

创建时初始化:
传入一个二维数组参数(可迭代对象,内部以数组的方式传入键值)
每个子数组,第一个元素是map对应的key, 第二个元素是map对应的value

let m = new Map([[{}, 222], [{}, '123']]);

console.log(m);
// Map(2) { {} => 222, {} => '123' }
Copier après la connexion

1-2 Map Api

1-2-1 添加映射元素

通过set()方法添加,传入两个参数,第一个传入映射的键,第二个传入映射的值。返回的是该映射集合(意味着可以链式添加)

let m = new Map();

m.set('prop', '值');

console.log(m);
// Map(1) { 'prop' => '值' }
Copier après la connexion

链式添加键值

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 } }
Copier après la connexion

1-2-2 映射集合长度

使用size

let m = new Map();

m.set('prop', '值').set('prop2', false).set('num', {id: 13});

console.log(m.size);
Copier après la connexion

Initialiser lors de la création :

Passer un paramètre de tableau bidimensionnel (objet itérable , La valeur clé est transmise sous forme de tableau en interne) Pour chaque sous-tableau, le premier élément est la 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(&amp;#39;prop&amp;#39;, &amp;#39;值&amp;#39;).set(&amp;#39;prop2&amp;#39;, false).set(&amp;#39;num&amp;#39;, {id: 13}); console.log(m.get(&amp;#39;prop2&amp;#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(&amp;#39;prop&amp;#39;, &amp;#39;值&amp;#39;).set(&amp;#39;prop2&amp;#39;, false).set(&amp;#39;num&amp;#39;, {id: 13}); m.delete(&amp;#39;prop2&amp;#39;); // true console.log(m.get(&amp;#39;prop2&amp;#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(&amp;#39;prop&amp;#39;, &amp;#39;值&amp;#39;).set(&amp;#39;prop2&amp;#39;, false).set(&amp;#39;num&amp;#39;, {id: 13}); m.delete(&amp;#39;prop2&amp;#39;); // true console.log(m.has(&amp;#39;prop2&amp;#39;), m.has(&amp;#39;num&amp;#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 actuelle
let m = new Map();

m.set(&#39;prop&#39;, &#39;值&#39;).set(&#39;prop2&#39;, false).set(&#39;num&#39;, {id: 13});

m.clear();
// true

console.log(m);
// Map(0) {}
Copier après la connexion

1-2-3 Récupérer l'élément

Récupérer l'élément via la méthode get() et transmettre la clé

1-2-4 Supprimer un élément

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
rrreee

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

  • 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 Value
  • rrreee
  • 1-3 Séquence et itération
  • map peut itérer les éléments en fonction de l'ordre d'insertion

    Le L'instance de mappage fournira (itérateur). Elle peut générer un tableau sous la forme de [clé, valeur] dans l'ordre d'insertion Oui. Parcourez l'interface de l'itérateur de la méthode entrées() (ou de l'interface Symbol.iterator fournie).
    rrreee
  • 1-4 Comparaison avec l'objet

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

🎜🎜Performances d'insertion🎜🎜Vitesse d'insertion Les performances de map et Object sont à peu près les mêmes, mais si le code implique un grand nombre d'insertions, il est recommandé d'utiliser map🎜🎜🎜🎜 La différence de vitesse de recherche🎜🎜 Petite, l'objet est meilleur lorsqu'il ne contient qu'un petit nombre de paires clé-valeur🎜🎜🎜🎜Performances de suppression🎜🎜Les performances delete() de l'objet sont médiocres, tandis que les performances delete() de la carte sont bonnes si. les données impliquent un grand nombre d'opérations de suppression, il est recommandé d'utiliser map🎜🎜🎜🎜🎜【Recommandations associées : 🎜Tutoriel vidéo javascript🎜, 🎜Vidéo de programmation🎜】🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!