Ein Wörterbuch ist eine Datenstruktur, die Daten in Form von „Schlüssel-Wert“-Paaren speichert. Wie Namen und Nummern in einem Telefonbuch. Die Object-Klasse von JavaScript ist in Form eines Wörterbuchs konzipiert.
Wörterbuchklasse (Wörterbuch) basiert auf Objekt. Im Buch „Data Structure and Algorithm JavaScript Description“ verwendet das „Wörterbuch“ ein Array zum Speichern von Daten, was es für den Leser nicht nur schwierig macht, es zu verstehen, sondern auch keinen Komfort bietet. Die Codelogik ist falsch. Die Ergebnisse können nicht korrekt ausgegeben werden! ! !
/** * 构造函数 * 基于对象存储数据 * @constructor */function Dictionary(){ this.datastore = new Object(); } Dictionary.prototype = { /* 修正constructor */ constructor: Dictionary, /* 统计个数 */ size: function(){ return Object.keys(this.datastore).length; }, /* 添加元素,给数组添加属性 */ add: function(key, value){ this.datastore[key] = value; }, /* 查找指定key的元素 */ find: function(key){ return this.datastore[key]; }, /* 移除指定key的元素 */ remove: function(key){ delete this.datastore[key]; }, /* 显示所有的键值对 */ showAll: function(){ for(var key in this.datastore){ console.log(key + ": " + this.find(key)); } } };
Test:
var dic = new Dictionary(); dic.add("name", "ligang"); dic.add("age", 26); dic.find("name"); // "ligang"dic.size(); // 2dic.showAll(); // "name: ligang" "age: 26"dic.remove("age"); dic.size(); // 1dic.showAll(); // "name: ligang"
Hinzugefügt: Object.keys(obj)
Gibt ein Array zurück, das alle (selbst) aufzählbaren Eigenschaften enthält. Bitte schauen Sie sich an - JavaScript-Objekte und -Funktionen (JavaScript, das Sie nicht kennen)
Das Sortieren des Wörterbuchs kann in eine Sortierung nach einem Objektattribut umgewandelt werden . Wir können also Object.keys()
/* 排序 */Dictionary.prototype.sort = function(){ // 借助数组的默认排序 var keys = Object.keys(this.datastore).sort(); // 新定义字典类 var tempDic = new Dictionary(); for(var i = 0, len = keys.length; i < len; i++){ var key = keys[i]; tempDic.add(key, this.find(key)); } return tempDic; };
zum Testen verwenden:
var dictionary = new Dictionary(); dictionary.add("b", 2); dictionary.add("a", 1); dictionary.add("c", 3); dictionary.showAll(); // "b: 2" "a: 1" "c: 3"dictionary.sort().showAll(); // "a: 2" "b: 1" "c: 3"
Zusammenfassung: Die obige Wörterbuchklasse erlaubt keine Duplikate Schlüssel. Für denselben Schlüssel überschreibt der spätere den vorherigen. Natürlich können durch Ändern des Codes auch andere Möglichkeiten implementiert werden.
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der JavaScript-Datenstruktur-Wörterbuchklasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!