JavaScript 데이터 구조 사전 클래스에 대한 자세한 설명

零到壹度
풀어 주다: 2018-04-09 11:29:12
원래의
2177명이 탐색했습니다.

사전은 "키-값" 쌍의 형태로 데이터를 저장하는 데이터 구조입니다. 전화번호부에 나오는 이름이나 번호처럼 말이죠. JavaScript의 Object 클래스는 사전 형태로 설계되었습니다.

1. 사전 클래스

사전 클래스(사전)는 Object를 기반으로 합니다. 『데이터 구조와 알고리즘 자바스크립트 설명』이라는 책에서 '사전'은 배열을 사용해 데이터를 저장하는데, 이는 독자들이 이해하기 어려울 뿐만 아니라, 반대로 코드 로직도 형편없다. 잘못되어 설계된 대로 사용할 수 없습니다. 결과를 출력하는 올바른 방법입니다! ! !

/**
 * 构造函数
 * 基于对象存储数据
 * @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"
로그인 후 복사

Added: Object.keys(obj)는 (자체) 열거 가능한 모든 속성을 포함하는 배열을 반환합니다. 확인해 보세요 - JavaScript 개체 및 함수(당신이 모르는 JavaScript) Object.keys(obj)返回一个数组,包含所有(自身)可枚举属性。请查看-JavaScript对象、函数(你不知道的JavaScript)

二、为字典类添加排序功能

为字典排序,可以转化为某个对象属性排序。所以我们可以借助Object.keys()

2. 사전 클래스에 정렬 기능 추가

사전 정렬은 개체 속성별 정렬로 변환될 수 있습니다. 따라서 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;
};
로그인 후 복사

test:

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"
로그인 후 복사

Summary를 사용할 수 있습니다. 위의 사전 클래스는 중복 키를 허용하지 않습니다. 동일한 키의 경우 나중 키가 이전 키를 덮어씁니다. 물론 코드를 수정하여 다른 방법을 구현할 수도 있습니다.

관련 추천:

사전 유형

Javascript 사전 작업

JS 배열, 사전🎜🎜🎜

위 내용은 JavaScript 데이터 구조 사전 클래스에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿