Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Map- und Set-Instanzen in JavaScript

Detaillierte Erläuterung der Map- und Set-Instanzen in JavaScript

零下一度
零下一度Original
2017-06-26 10:12:091281Durchsuche

Map

 Map ist eine Struktur aus Schlüssel-Wert-Paaren und hat eine extrem schnelle Suchgeschwindigkeit.

Definition der Karte.

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

Methoden in 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

Durch wiederholtes Festlegen eines Werts für einen Schlüssel überschreibt der nachfolgende Wert den vorherigen Wert.

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

Set

Set ähnelt Map, aber set speichert Schlüssel und die Schlüssel werden nicht wiederholt.

Erstellung des Sets.

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

Duplikatwerte einfügen, Set filtert die Duplikatwerte

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

Map and Set Traversing

Array kann Indizes für die Schleifendurchquerung verwenden, Map und Set können jedoch keine Indizes verwenden. Um Sammlungstypen zu vereinheitlichen, wurden im ES6-Standard die iterierbaren Typen eingeführt, die alle zum iterierbaren Typ gehören.

Sammlungen mit dem Typ iterable können über eine neue for ... of-Schleife durchlaufen werden.

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]);
}

Bessere Durchquerung: forEach

forEach ist eine integrierte Methode von iterable, die a empfängt function , diese Funktion wird bei jeder Iteration automatisch zurückgerufen.

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

 Set ähnelt Array, aber Set hat keinen Index, sodass die ersten beiden Parameter der Rückruffunktion die Elemente selbst sind:

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

Die Callback-Funktionsparameter von Map sind value, key und map selbst:

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

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Map- und Set-Instanzen in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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