Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der JavaScript-Datenstruktur-Wörterbuchklasse

Detaillierte Erläuterung der JavaScript-Datenstruktur-Wörterbuchklasse

零到壹度
零到壹度Original
2018-04-09 11:29:122183Durchsuche

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.

1. Wörterbuchklasse

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)

2. Fügen Sie der Wörterbuchklasse eine Sortierfunktion hinzu

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:

Wörterbuchtyp

Javascript-Wörterbuchbetrieb

JS-Array, Wörterbuch

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!

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