Inhaltsverzeichnis
es6-Karte
1-2-1 添加映射元素" >1-2-1 添加映射元素
1-2-2 映射集合长度" >1-2-2 映射集合长度
1-2-1 Zuordnungselemente hinzufügen" >1-2-1 Zuordnungselemente hinzufügen
Heim Web-Frontend Front-End-Fragen und Antworten Ist es6 Map ein Referenztyp?

Ist es6 Map ein Referenztyp?

Jan 11, 2023 pm 04:59 PM
es6 map

map ist ein Referenztyp; Map (Set) ist ein neuer Referenzdatentyp, der in es6 hinzugefügt wurde und die Zuordnungsbeziehung von Daten darstellt. Daten im Kartensammlungs-Datentyp werden in der Art „Schlüssel/Wert“ gespeichert. Sie können die Eigenschaften des Objekts als Schlüssel verwenden und die Eigenschaften verwenden, um auf den Wert zu verweisen, z. B. „const“. myMap = new Map();" .

Ist es6 Map ein Referenztyp?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.

map ist ein Referenztyp.

es6-Karte

Vor ES6 erfolgte die Implementierung von „key“ => „value“ in JavaScript, was wir oft als Schlüssel-Wert-Paare bezeichnen, mithilfe von Object. Diese Implementierungsmethode weist jedoch in speziellen Szenarien Probleme auf. ES6 hat einen neuen Sammlungstyp namens Map eingeführt, der einen echten Schlüssel-Wert-Paar-Speichermechanismus in die Sprache bringt.

map (set) ist ein neuer Referenzdatentyp in es6, der die Zuordnungsbeziehung von Daten darstellt. Die Daten im Kartensammlungsdatentyp werden in Form von „Schlüssel/Wert“ gespeichert und Sie können die Eigenschaften von verwenden das Objekt als Schlüssel. Verwenden Sie Eigenschaften, um auf Werte zu verweisen.

1-1 Erstellen Sie eine Karte

Verwenden Sie das Schlüsselwort new, um eine Karte zu instanziierennew关键字来实例一个map

let m = new Map();

console.log(m);
// Map(0) {}
Nach dem Login kopieren

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

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

console.log(m);
// Map(2) { {} => 222, {} => '123' }
Nach dem Login kopieren

1-2 Map Api

1-2-1 添加映射元素

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

let m = new Map();

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

console.log(m);
// Map(1) { 'prop' => '值' }
Nach dem Login kopieren

链式添加键值

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 } }
Nach dem Login kopieren

1-2-2 映射集合长度

使用size

let m = new Map();

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

console.log(m.size);
Nach dem Login kopieren

Beim Erstellen initialisieren:

Übergeben Sie einen zweidimensionalen Array-Parameter (iterierbares Objekt). , Der Schlüsselwert wird intern als Array übergeben) Für jedes Unterarray ist das erste Element der Schlüssel, der der Karte entspricht, und das zweite Element ist der Wert</code > entsprechend der Karte</a><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;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">Nach dem Login kopieren</div></div> <strong><a id="12_Map_Api_24"></strong></h3><p>1-2 Karten-API</p><h3 id="a-id-a-a-id-strong-strong-Zuordnungselemente-hinzufügen"><a id="124__66"></a><a id="121__25"><strong></strong>1-2-1 Zuordnungselemente hinzufügen</h3><p></p>Hinzufügen Geben Sie über die set()-Methode zwei Parameter ein, der erste ist der Schlüssel der Karte und der zweite der Wert der Karte. Was zurückgegeben wird, ist der Zuordnungssatz (d. h. er kann in einer Kette hinzugefügt werden)<h3><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;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">Nach dem Login kopieren</div></div><a id="125__80">Verketteter Schlüsselwert</a><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;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">Nach dem Login kopieren</div></div><strong><a id="122__45"></strong></h3>1-2-2 Zuordnungssatzlänge<p></p><h3>Verwenden Sie <Code > Das Attribut „size“ kann die Anzahl der Elemente in der aktuellen Sammlung abrufen
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) {}
Nach dem Login kopieren

1-2-4 Ein Element löschen

Löschen Sie ein Element in der zugeordneten Sammlung über die Methode delete() und geben Sie einen booleschen Wert zurück, der den Erfolg oder Misserfolg des Löschvorgangs angibt

1-2 -5 Erkennen Sie, ob das Element vorhanden ist

Verwenden Sie die Methode has(), um zu erkennen, ob das Zielelement vorhanden ist, und geben Sie den booleschen Wert des Erkennungsergebnisses zurück
rrreee

1-2-6 Methode zum Löschen von Elementen Verwenden Sie die Methode clear(), um alle Elemente zu löschen, und geben Sie den booleschen Wert für eine erfolgreiche Löschung zurück. Wert rrreee

  • 1-3 Sequenz und Iteration

  • map kann Elemente gemäß der Einfügungsreihenfolge iterieren
    Die Mapping-Instanz wird bereitgestellt (Iterator). Es kann ein Array in der Form von [Schlüssel, Wert] in der Reihenfolge der Einfügung generieren. Ja Durchlaufen Sie die Iteratorschnittstelle „Entries()“ (oder die bereitgestellte Symbol.iterator).

    rrreee

  • 1-4 Vergleich mit Object

  • Speichernutzung

    Unterschiede in den Browsern führen dazu, dass die Speichernutzung der beiden Speichermethoden unterschiedlich ist. Aufgrund der Speichergröße beträgt die Kartenspeicherung jedoch etwa 50 % mehr Schlüssel-Wert-Paare als Object

Einfügungsleistung

Einfügungsgeschwindigkeit Die Leistung von Map und Object ist ungefähr gleich, aber wenn der Code eine große Anzahl von Einfügungen umfasst, wird die Verwendung von Map

empfohlen Der Unterschied in der Suchgeschwindigkeit: Klein, Object ist besser, wenn es nur eine kleine Anzahl von Schlüssel-Wert-Paaren enthält. Löschleistung: Die delete()-Leistung von Object ist schlecht, während die delete()-Leistung von Map gut ist Die Daten erfordern eine große Anzahl von Löschvorgängen. Es wird empfohlen, Map zu verwenden

Das obige ist der detaillierte Inhalt vonIst es6 Map ein Referenztyp?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie liest Springboot Listen, Arrays, Kartensammlungen und Objekte in YML-Dateien? Wie liest Springboot Listen, Arrays, Kartensammlungen und Objekte in YML-Dateien? May 11, 2023 am 10:46 AM

application.yml definiert die Listensammlung. Die erste Möglichkeit besteht darin, die Annotation @ConfigurationProperties zu verwenden, um alle Werte der Listensammlung zu erhalten Hier ist zu beachten, dass beim Definieren der Listensammlung zunächst eine Konfigurationsklasse Bean definiert und dann die Annotation @ConfigurationProperties verwendet wird, um den Wert der Listensammlung zu erhalten. @Component übergibt die Entitätsklasse an das Spring-Management @ConfigurationPropertie

So legen Sie die Ablaufzeitkarte in Java fest So legen Sie die Ablaufzeitkarte in Java fest May 04, 2023 am 10:13 AM

1. Technischer Hintergrund In der tatsächlichen Projektentwicklung verwenden wir häufig Caching-Middleware (wie Redis, MemCache usw.), um die Verfügbarkeit und Robustheit des Systems zu verbessern. Wenn das Projekt jedoch relativ einfach ist, besteht in vielen Fällen keine Notwendigkeit, speziell Middleware wie Redis einzuführen, um die Komplexität des Systems zu erhöhen und Caching zu verwenden. Verfügt Java selbst über nützliche, leichtgewichtige Caching-Komponenten? Die Antwort ist natürlich ja, und es gibt mehr als einen Weg. Zu den gängigen Lösungen gehören: ExpiringMap-, LoadingCache- und HashMap-basierte Paketierung. 2. Technische Effekte zur Realisierung allgemeiner Cache-Funktionen, z. B. veraltete Löschstrategie, Aufwärmen von Hotspot-Daten. 3. ExpiringMap3.

Ist Async für es6 oder es7? Ist Async für es6 oder es7? Jan 29, 2023 pm 05:36 PM

async ist es7. Async und Wait sind neue Ergänzungen zu ES7 und Lösungen für asynchrone Vorgänge. Man kann sagen, dass Async/Await syntaktischer Zucker für Co-Module und Generatorfunktionen ist und js asynchronen Code mit klarerer Semantik löst. Wie der Name schon sagt, bedeutet Async „asynchron“. Async wird verwendet, um zu deklarieren, dass eine Funktion asynchron ist. Es gibt eine strikte Regel zwischen Async und Wait.

So implementieren Sie die Array-Deduplizierung in es5 und es6 So implementieren Sie die Array-Deduplizierung in es5 und es6 Jan 16, 2023 pm 05:09 PM

In es5 können Sie die for-Anweisung und die Funktion indexOf() verwenden, um eine Array-Deduplizierung zu erreichen. Die Syntax „for(i=0;i<array length;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}". In es6 können Sie den Spread-Operator Array.from() und Set verwenden, um Duplikate zu entfernen. Sie müssen zuerst das Array in ein Set-Objekt konvertieren, um Duplikate zu entfernen, und dann den Spread-Operator oder die Funktion Array.from() verwenden Konvertieren Sie das Set-Objekt zurück in ein Array.

Welche Möglichkeiten gibt es, Thread-Sicherheit für Map in Java zu implementieren? Welche Möglichkeiten gibt es, Thread-Sicherheit für Map in Java zu implementieren? Apr 19, 2023 pm 07:52 PM

Methode 1. Verwenden Sie HashtableMapashtable=newHashtable(); Das ist das Erste, woran jeder denkt. Warum ist es also threadsicher? Werfen Sie dann einen Blick auf den Quellcode. Wir können sehen, dass unsere häufig verwendeten Methoden wie put, get und containsKey alle synchron sind, sodass es sich um threadsicheren publicsynchronizedbooleancontainsKey(Objectkey){Entrytab[]=table;inthash=key handelt. hashCode( );intindex=(hash&0x7FFFFFFF)%tab.leng

So konvertieren Sie Objekte in Java mit BeanMap in Karten So konvertieren Sie Objekte in Java mit BeanMap in Karten May 08, 2023 pm 03:49 PM

Es gibt viele Möglichkeiten, Javabeans und Maps zu konvertieren, wie zum Beispiel: 1. Beans über ObjectMapper in JSON konvertieren und dann JSON in Map konvertieren. Nach dem Testen wurden 10.000 Beans konvertiert. es dauert 12 Sekunden! ! ! Nicht empfohlen. 2. Erhalten Sie die Attribute und Werte der Bean-Klasse durch Java-Reflektion und konvertieren Sie sie dann in die der Karte entsprechenden Schlüssel-Wert-Paare. Diese Methode ist die zweitbeste, aber etwas aufwändiger. 3. Durch die Methode net.sf.cglib.beans.BeanMap in der Klasse ist diese Methode äußerst effizient. Der Unterschied zur zweiten Methode besteht darin, dass die Bean aufgrund der Verwendung des Caches initialisiert werden muss erstellt.

Optimieren Sie die Leistung der Go-Sprachkarte Optimieren Sie die Leistung der Go-Sprachkarte Mar 23, 2024 pm 12:06 PM

Optimieren der Leistung der Go-Sprachkarte In der Go-Sprache ist Karte eine sehr häufig verwendete Datenstruktur, die zum Speichern einer Sammlung von Schlüssel-Wert-Paaren verwendet wird. Allerdings kann die Kartenleistung bei der Verarbeitung großer Datenmengen beeinträchtigt werden. Um die Leistung der Karte zu verbessern, können wir einige Optimierungsmaßnahmen ergreifen, um die zeitliche Komplexität von Kartenoperationen zu reduzieren und dadurch die Ausführungseffizienz des Programms zu verbessern. 1. Kartenkapazität vorab zuweisen. Beim Erstellen einer Karte können wir die Anzahl der Kartenerweiterungen reduzieren und die Programmleistung verbessern, indem wir Kapazität vorab zuweisen. Im Allgemeinen wir

So konfigurieren und verwenden Sie das Kartenmodul im Nginx-Server So konfigurieren und verwenden Sie das Kartenmodul im Nginx-Server May 21, 2023 pm 05:14 PM

Die Map-Direktive verwendet das Modul ngx_http_map_module. Standardmäßig lädt Nginx dieses Modul, sofern nicht künstlich --without-http_map_module. Das Modul ngx_http_map_module kann Variablen erstellen, deren Werte mit den Werten anderer Variablen verknüpft sind. Ermöglicht die Klassifizierung oder gleichzeitige Zuordnung mehrerer Werte zu mehreren verschiedenen Werten und die Speicherung in einer Variablen. Die Map-Direktive wird zum Erstellen einer Variablen verwendet, führt die Ansichtszuordnungsoperation jedoch nur aus, wenn die Variable akzeptiert wird Bei der Verarbeitung von Anforderungen, die nicht auf Variablen verweisen, weist das Modul keine Leistungsmängel auf. 1.ngx_http_map_module Modulanweisungsbeschreibung Kartensyntax

See all articles