1. 자바스크립트 해시 테이블 소개
자바스크립트에는 해시 테이블이 없습니다. 자바나 C#에서는 이런 자료 구조가 가끔 사용됩니다. 불편한. . 자세히 살펴보면 JavaScript 개체의 속성이 실제로 해시 테이블과 매우 유사하다는 것을 알 수 있습니다.
예:
var person = {}; person["name"] = "关羽";
간소화된 버전의 해시 테이블을 얻으려면 이를 기반으로 일부 HashTable 기능을 캡슐화하면 됩니다.
다음과 같이 함수를 추가합니다.
2. 코드 구현
구체적인 구현은 코드를 확인할 수 있지만 그렇지 않습니다. 매우 복잡합니다.
function HashTable() { var size = 0; var entry = new Object(); this.add = function (key, value) { if (!this.containsKey(key)) { size++; } entry[key] = value; } this.getValue = function (key) { return this.containsKey(key) ? entry[key] : null; } this.remove = function (key) { if (this.containsKey(key) && (delete entry[key])) { size--; } } this.containsKey = function (key) { return (key in entry); } this.containsValue = function (value) { for (var prop in entry) { if (entry[prop] == value) { return true; } } return false; } this.getValues = function () { var values = new Array(); for (var prop in entry) { values.push(entry[prop]); } return values; } this.getKeys = function () { var keys = new Array(); for (var prop in entry) { keys.push(prop); } return keys; } this.getSize = function () { return size; } this.clear = function () { size = 0; entry = new Object(); } }
간단한 사용 예:
var manHT = new HashTable(); manHT.add("p1","刘备"); manHT.add("p2","关羽"); $("#div1").text(manHT.getValue("p1"));