Home >Web Front-end >JS Tutorial >Example analysis of js implementation of HashTable (hash table)
1. Introduction to javascript hash table
There is no hash table in javascript. This kind of data structure is sometimes used in java and C#. If there is no hash table in javascript, it feels very uncomfortable. If you look closely, you will find that the properties of JavaScript's object are actually very similar to hash tables.
Such as:
var person = {}; person["name"] = "关羽";
We only need to encapsulate some HashTable functions on top of it to get a simplified version of the hash table.
Add the function as follows:
2. Code implementation
You can check the code for its specific implementation, it is not very complicated.
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(); } }
Simple usage example:
var manHT = new HashTable(); manHT.add("p1","刘备"); manHT.add("p2","关羽"); $("#div1").text(manHT.getValue("p1"));