Inhaltsverzeichnis
Wörterbuch (Karte):
Zusammenfassung**: **
Heim Web-Frontend Front-End-Fragen und Antworten Was ist der Unterschied zwischen es6-Set und Map?

Was ist der Unterschied zwischen es6-Set und Map?

Apr 15, 2022 pm 06:37 PM
es6 map set

Unterschied: 1. Set bezieht sich auf die „Set“-Struktur, während sich Map auf die „Dictionary“-Struktur bezieht. 2. Set speichert Elemente in der Form „[Wert, Wert]“, während Map Elemente in der Form speichert „[Schlüssel, Wert]“; 3. Map kann get() verwenden, um einen bestimmten Wert anhand des Schlüssels zu finden und zurückzugeben, set jedoch nicht.

Was ist der Unterschied zwischen es6-Set und Map?

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

Kurze Beschreibung:

  • Die Hauptanwendungsszenarien von Set und Map sind Datenreorganisation und Datenspeicherung.
  • Set ist eine Datenstruktur, die als Set bezeichnet wird, und Map ist eine Datenstruktur, die als Wörterbuch bezeichnet wird.

Der Unterschied zwischen Mengen und Wörterbüchern:

  • Gemeinsamkeiten: Mengen und Wörterbücher können eindeutige Werte speichern
  • Unterschiede: Mengen speichern Elemente in der Form [Wert, Wert] und Wörterbücher speichern Elemente in der Form von [Schlüssel, Wert] Speicherung in Form von

Set:

ES6 fügt eine neue Datenstruktur hinzu, die einem Array ähnelt, aber die Mitglieder sind eindeutig und ungeordnet und es gibt keine doppelten Werte.

Set selbst ist ein Konstruktor, der zum Generieren einer Set-Datenstruktur verwendet wird.

Mit Set-Objekten können Sie eindeutige Werte jeglicher Art speichern, unabhängig davon, ob es sich um Grundwerte oder Objektreferenzen handelt.

const s = new Set()
[1, 2, 3, 4, 3, 2, 1].forEach(x => s.add(x))
for (let i of s) {
    console.log(i)	// 1 2 3 4
}
// 去重数组的重复对象
let arr = [1, 2, 3, 2, 1, 1]
[... new Set(arr)]	// [1, 2, 3]
Nach dem Login kopieren

Hinweis: Beim Hinzufügen von Werten zu Set erfolgt keine Typkonvertierung, daher sind „5“ und „5“ zwei verschiedene Werte. Intern wird festgelegt, ob zwei Werte unterschiedlich sind. Der verwendete Algorithmus heißt „Same-Value-Zero-Gleichheit“ und ähnelt dem **exakten Gleichheitsoperator („===“). *`NaN` ist gleich sich selbst, während der exakte Gleichheitsoperator davon ausgeht, dass `NaN` nicht gleich sich selbst ist. **

let set = new Set();
let a = NaN;
let b = NaN;
set.add(a);
set.add(b);
set // Set {NaN}

let set1 = new Set()
set1.add(5)
set1.add('5')
console.log([...set1])	// [5, "5"]
Nach dem Login kopieren

Operationsmethode:

  • add(value): Neu, äquivalent zum Push-in-Array.

  • delete(value): Löschen Sie den Wert in der Sammlung, falls vorhanden.

  • has(value): Bestimmen Sie, ob ein Wert in der Menge vorhanden ist.

  • clear(): Löscht die Sammlung.

Traversal-Methode: Traversal-Methode (Traversal-Reihenfolge ist Einfügungsreihenfolge)

  • keys(): Gibt einen Iterator zurück, der alle Schlüssel in der Sammlung enthält.

  • values(): Gibt einen Iterator zurück, der alle Werte in der Sammlung enthält.

  • entries(): Gibt einen Schlüsselwert-Iterator zurück, der alle Elemente im Set-Objekt enthält.

  • forEach(callbackFn, thisArg): Wird zum Ausführen von CallbackFn-Operationen für Sammlungsmitglieder verwendet. Wenn der thisArg-Parameter bereitgestellt wird, ist dies im Callback dieser Parameter. Es gibt keinen Rückgabewert.

Wörterbuch (Karte):

ist eine Struktur aus Schlüssel-Wert-Paaren mit extrem schneller Suchgeschwindigkeit.

const m = new Map()
const o = {p: 'haha'}
m.set(o, 'content')
m.get(o)	// content

m.has(o)	// true
m.delete(o)	// true
m.has(o)	// false
Nach dem Login kopieren

So funktioniert es:

  • set(key, value): Neue Elemente zum Wörterbuch hinzufügen.
  • get(key): Finden Sie einen bestimmten Wert anhand des Schlüssels und geben Sie ihn zurück.
  • has(key): Bestimmen Sie, ob der Schlüsselschlüssel im Wörterbuch vorhanden ist.
  • delete(key): Entfernen Sie die entsprechenden Daten über die Schlüsseltaste aus dem Wörterbuch.
  • clear(): Alle Elemente in diesem Wörterbuch löschen.

Traversal-Methode:

  • Keys(): Gibt alle im Wörterbuch enthaltenen Schlüsselnamen in Form eines Iterators zurück.
  • values(): Gibt alle im Wörterbuch enthaltenen Werte in Form eines Iterators zurück.
  • entries(): Gibt einen Iterator aller Mitglieder zurück.
  • forEach(): Alle Mitglieder des Wörterbuchs durchlaufen.

Zusammenfassung**: **

Set:

  • bezieht sich auf die „Set“-Struktur

  • [Wert, Wert], der Schlüsselwert und der Schlüsselname sind konsistent (oder nur der Schlüsselwert, kein Schlüsselname).

  • Kann keinen bestimmten Wert nach Schlüssel finden

Karte:

  • bezieht sich auf die „Wörterbuch“-Struktur

  • [Schlüssel, Wert], der Schlüsselwert und der Schlüsselname sind inkonsistent

  • Karte kann verwendet werden, um () abzurufen, einen bestimmten Wert per Schlüssel zu finden und zurückzugeben

【Verwandte Empfehlungen: Javascript-Video-Tutorial, Web-Frontend

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen es6-Set und Map?. 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)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen 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

Ausführliche Erläuterung der Funktion „Tag festlegen' in den dynamischen SQL-Tags von MyBatis Ausführliche Erläuterung der Funktion „Tag festlegen' in den dynamischen SQL-Tags von MyBatis Feb 26, 2024 pm 07:48 PM

Interpretation der dynamischen SQL-Tags von MyBatis: Detaillierte Erläuterung der Verwendung von Set-Tags. MyBatis ist ein hervorragendes Persistenzschicht-Framework. Es bietet eine Fülle dynamischer SQL-Tags und kann Datenbankoperationsanweisungen flexibel erstellen. Unter anderem wird das Set-Tag zum Generieren der SET-Klausel in der UPDATE-Anweisung verwendet, die sehr häufig bei Aktualisierungsvorgängen verwendet wird. In diesem Artikel wird die Verwendung des Set-Tags in MyBatis ausführlich erläutert und seine Funktionalität anhand spezifischer Codebeispiele demonstriert. Was ist Set-Tag? Set-Tag wird in MyBati verwendet

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.

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.

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

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

See all articles