Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée de la classe de dictionnaire de structure de données JavaScript

零到壹度
Libérer: 2018-04-09 11:29:12
original
2162 Les gens l'ont consulté

Un dictionnaire est une structure de données qui stocke les données sous forme de paires « clé-valeur ». Comme les noms et les numéros dans un annuaire téléphonique. La classe Object de JavaScript est conçue sous la forme d'un dictionnaire.

1. Classe Dictionnaire

La classe Dictionnaire (Dictionary) est basée sur Object. Dans le livre "Data Structure and Algorithm JavaScript Description", le "dictionnaire" utilise un tableau pour stocker les données, ce qui non seulement rend la compréhension difficile pour les lecteurs, mais ne parvient pas non plus à assurer la commodité. la logique du code est erronée. Les résultats ne peuvent pas être générés correctement comme prévu ! ! !

/**
 * 构造函数
 * 基于对象存储数据
 * @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));
        }
    }
};
Copier après la connexion

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"
Copier après la connexion

Ajouté : Object.keys(obj) Renvoie un tableau contenant toutes les propriétés (auto)énumérables. Veuillez consulter - Objets et fonctions JavaScript (JavaScript que vous ne connaissez pas)

2. Ajouter une fonction de tri à la classe du dictionnaire

Le tri du dictionnaire peut être converti en tri par un attribut d'objet . Nous pouvons donc utiliser 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;
};
Copier après la connexion

pour tester :

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"
Copier après la connexion

Résumé : La classe de dictionnaire ci-dessus n'autorise pas la duplication clés . Pour une même clé, la dernière écrasera la précédente. Bien entendu, d’autres moyens peuvent être obtenus en modifiant le code.

Recommandations associées :

Type de dictionnaire

Fonctionnement du dictionnaire Javascript

Tableau JS, dictionnaire

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!