HashTable(ハッシュテーブル)のjs実装の解析例

高洛峰
リリース: 2016-12-06 11:03:23
オリジナル
1024 人が閲覧しました

1. JavaScript ハッシュ テーブルの概要

JavaScript にはハッシュ テーブルがありません。Java や C# ではこの種のデータ構造が使用されることがあります。よく見ると、JavaScript のオブジェクトのプロパティが実際にはハッシュ テーブルに非常に似ていることがわかります。

例:

var person = {};
person["name"] = "关羽";
ログイン後にコピー

ハッシュ テーブルの簡略化されたバージョンを取得するには、その上にいくつかの HashTable 関数をカプセル化するだけです。

次のように関数を追加します:

HashTable(ハッシュテーブル)のjs実装の解析例

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"));
ログイン後にコピー


関連ラベル:
js
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート