在JS中使用哈希表(hashTable)

因JavaScript中允许任意对象作为下标,使的Object可以有任意的key做为属性。

下面的列子中展示如何在JS中很方便的使用哈希表

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML>
  3.  <HEAD>
  4.   <TITLE> New Document </TITLE>
  5.   <script type="text/javascript">
  6.   <!--
  7.     var hashTable = new Object();   // 声明对象
  8.     // 添加
  9.     function add(key,value){
  10.        // 判断key是否存在
  11.        if(key in hashTable){
  12.             alert("key已经存在");
  13.        }
  14.        hashTable[key] = value;
  15.     }
  16.     //删除
  17.     function del(key){
  18.         delete(hashTable[key]);
  19.         alert("删除成功");
  20.     }
  21.     // 取值
  22.     function getValue(key){
  23.         alert(hashTable[key]);
  24.     }
  25.     // 循环所有值
  26.     function getAll(){
  27.         for(var k in hashTable){
  28.             document.write(k+":" +hashTable[k] + "<br />");
  29.         }
  30.     }
  31.     function $v(id){
  32.         return document.getElementById(id).value;
  33.     }
  34.   //-->
  35.   </script>
  36.  </HEAD>

  37.  <BODY>
  38.     <div>
  39.         Key:<input type="text" id="k" /><br />
  40.         Value:<input type="text" id="v" /><br />
  41.     </div>
  42.     <input type="button" value="add" onclick="add($v('k'),$v('v'));" />
  43.     <input type="button" value="delete" onclick="del($v('k'));" />
  44.     <input type="button" value="get" onclick="getValue($v('k'));" />
  45.     <input type="button" value="getAll" onclick="getAll();" />
  46.  </BODY>
  47. </HTML>




  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
JavaScript哈希表可以通过对象(Object)来实现。对象的属性名就是哈希表的键,属性值就是哈希表的值。以下是一个简单的哈希表的实现: 1. 定义一个HashTable类,包含以下方法: ```javascript class HashTable { constructor() { this.table = {}; } // 向哈希表添加键值对 put(key, value) { this.table[key] = value; } // 从哈希表获取指定键的值 get(key) { return this.table[key]; } // 从哈希表移除指定键的值 remove(key) { delete this.table[key]; } // 判断哈希表是否包含指定键 contains(key) { return this.table.hasOwnProperty(key); } // 获取哈希表所有的键 getKeys() { return Object.keys(this.table); } // 获取哈希表所有的值 getValues() { return Object.values(this.table); } // 获取哈希表键值对的数量 size() { return Object.keys(this.table).length; } // 清空哈希表 clear() { this.table = {}; } } ``` 2. 创建一个HashTable对象,并向其添加键值对: ```javascript const hashTable = new HashTable(); hashTable.put('name', 'Tom'); hashTable.put('age', 18); hashTable.put('gender', 'male'); ``` 3. 从哈希表获取指定键的值: ```javascript const name = hashTable.get('name'); // 'Tom' ``` 4. 从哈希表移除指定键的值: ```javascript hashTable.remove('gender'); ``` 5. 判断哈希表是否包含指定键: ```javascript const hasAge = hashTable.contains('age'); // true const hasGender = hashTable.contains('gender'); // false ``` 6. 获取哈希表所有的键: ```javascript const keys = hashTable.getKeys(); // ['name', 'age'] ``` 7. 获取哈希表所有的值: ```javascript const values = hashTable.getValues(); // ['Tom', 18] ``` 8. 获取哈希表键值对的数量: ```javascript const size = hashTable.size(); // 2 ``` 9. 清空哈希表: ```javascript hashTable.clear(); ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值