Es gibt drei Arten von Sammlungstypen: 1. Der Kartentyp speichert Schlüssel-Wert-Paare, die Werte können jedoch wiederholt werden sind ungeordnet und können nicht wiederholt werden. 3. Die in der Liste gespeicherten Objekte sind geordnet und wiederholbar, und ihre Abfragegeschwindigkeit ist hoch.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
In JavaScript gibt es drei Sammlungstypen: Set, Liste und Karte.
1. Karte (Schlüssel-Wert-Paar, eindeutiger Schlüssel, nicht eindeutiger Wert):
Karte ist eine Struktur aus einer Reihe von Schlüssel-Wert-Paaren mit extrem schneller Suchgeschwindigkeit. Erstellt durch Übergabe eines Arrays von Arrays. Fügen Sie neue Elemente hinzu, indem Sie .set(key,value) aufrufen.
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95
m.set('Adam', 67); // 添加新的key-value
Nach dem Login kopieren
Angenommen, Sie möchten die entsprechenden Noten basierend auf den Namen der Klassenkameraden finden. Wenn Sie Array zur Implementierung verwenden, benötigen Sie zwei Arrays:
var names = ['Michael', 'Bob', 'Tracy'];
var scores = [95, 75, 85];
Nach dem Login kopieren
Wenn Sie einen Namen angeben, möchten Sie die entsprechenden Noten finden. Sie müssen zuerst die Entsprechung in der Namensposition finden und dann die entsprechenden Ergebnisse aus den Bewertungen abrufen. Je länger das Array, desto länger dauert es.
Wenn Sie Map zur Implementierung verwenden, benötigen Sie nur eine Vergleichstabelle „Name“ – „Score“ und können direkt anhand des Namens nach Scores suchen. Unabhängig davon, wie groß die Tabelle ist, wird die Suchgeschwindigkeit nicht langsamer runter.
Schreiben Sie eine Karte in JavaScript wie folgt:
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95
Nach dem Login kopieren
Für die Initialisierung der Karte ist ein zweidimensionales Array erforderlich, oder Sie können direkt eine leere Karte initialisieren.
Map verfügt über die folgenden Methoden:
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
m.get('Adam'); // undefined
Nach dem Login kopieren
Da ein Schlüssel nur einem Wert entsprechen kann, wird der vorherige Wert durch den nachfolgenden Wert ausgewaschen, wenn Sie mehrmals einen Wert in einen Schlüssel eingeben:
var m = new Map();
m.set('Adam', 67);
m.set('Adam', 88);
m.get('Adam'); // 88
Nach dem Login kopieren
1) Eigenschaften und Methoden
Definition: Eine Sammlung von Schlüssel/Wert-Paaren.
Syntax: mapObj = new Map()
Bemerkungen: Die Schlüssel und Werte in der Sammlung können von beliebigem Typ sein. Wenn Sie mithilfe eines vorhandenen Schlüssels einen Wert zur Sammlung hinzufügen, ersetzt der neue Wert den alten Wert. Eigenschaften des Kartenobjekts
Konstrukteur
Gibt die Anzahl der Elemente in der Karte zurück
Kartenobjektmethode
Beschreibung
clear
Alle Elemente aus der Karte entfernen
löschen
Entfernen Sie das angegebene von die Karte des Elements
forEach
Führt die angegebene Operation für jedes Element in der Karte aus
get
Gibt das angegebene Element in der Karte zurück
has
Gibt true zurück, wenn die Karte das angegebene enthält element
toString
Gibt die Zeichenfolgendarstellung der Karte zurück
set
Fügt der Karte ein neues Element hinzu
valueOf
Gibt den ursprünglichen Wert des angegebenen Objekts zurück
// 如何将成员添加到 Map,然后检索它们
var m = new Map();
m.set(1, "black");
m.set(2, "red");
m.set("colors", 2);
m.set({x:1}, 3);
m.forEach(function (item, key, mapObj) {
document.write(item.toString() + "<br />");
});
document.write("<br />");
document.write(m.get(2));
// Output:
// black
// red
// 2
// 3
//
// red
var s1 = new Set(); // 空Set
var s2 = new Set([1, 2, 3]); // 含1, 2, 3
Nach dem Login kopieren
Set 函数可以接受一个数组(或类似数组的对象)作为参数,用来进行数据初始化。
let i = new Set([1, 2, 3, 4, 4]); //会得到 set{1, 2, 3, 4,}
Nach dem Login kopieren
注:如果初始化时给的值有重复的,会自动去除。集合并没有字面量声明方式。
2)Set的属性
常用的属性就一个:size 返回 Set 实例的成员总数。
let s = new Set([1, 2, 3]);
console.log( s.size ); // 3
Nach dem Login kopieren
3)Set的方法
Set 实例的方法分为两大类:操作方法(用于数据操作)和遍历方法(用于遍历数据)。
操作方法:
add(value) 添加数据,并返回新的 Set 结构
delete(value) 删除数据,返回一个布尔值,表示是否删除成功
has(value) 查看是否存在某个数据,返回一个布尔值
clear() 清除所有数据,没有返回值
let set = new Set([1, 2, 3, 4, 4]);
// 添加数据 5
let addSet = set.add(5);
console.log(addSet); // Set(5) {1, 2, 3, 4, 5}
// 删除数据 4s
let delSet = set.delete(4);
console.log(delSet); // true
// 查看是否存在数据 4
let hasSet = set.has(4);
console.log(hasSet); // false
// 清除所有数据
set.clear();
console.log(set); // Set(0) {}
Nach dem Login kopieren
遍历方法:
Set 提供了三个遍历器生成函数和一个遍历方法。
keys() 返回一个键名的遍历器
values() 返回一个键值的遍历器
entries() 返回一个键值对的遍历器
forEach() 使用回调函数遍历每个成员
let color = new Set(["red", "green", "blue"]);
for(let item of color.keys()){
console.log(item);
}
// red
// green
// blue
for(let item of color.values()){
console.log(item);
}
// red
// green
// blue
for(let item of color.entries()){
console.log(item);
}
// ["red", "red"]
// ["green", "green"]
// ["blue", "blue"]
color.forEach((item) => {
console.log(item)
})
// red
// green
// blue
Das obige ist der detaillierte Inhalt vonWelche Sammlungstypen gibt es in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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