首先简单的介绍关于属性的一些方法:

属性的枚举:

for/in循环是遍历对象属性的方法。如

var obj = {

name : 'obj1',

age : 20,

height : '176cm'

}

var str = '';

for(var name in obj)

{

str += name + ':' + obj[name] + '\n';

}

alert(str);

输出为:name:obj1

age:20

height:176cm

检查属性是否存在:

in运算符可以用来测试一个属性是否存在。

this.containsKey = function ( key )

{

return (key in entry);

}

删除属性

使用delete运算符来删除一个对象的属性。使用delete删除的属性,for/in将不会枚举该属性,并且in运算符也不会检测到该属性。

delete entry[key];

delete obj.name;

下面是哈希表(hashtable)的js的实现方法:

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();

}

}

测试:

代码

HashTable

function MyObject(name)

{

this.name = name;

this.toString = function(){

return this.name;

}

}

$(function(){

var map = new HashTable();

map.add("A","1");

map.add("B","2");

map.add("A","5");

map.add("C","3");

map.add("A","4");

var arrayKey = new Array("1","2","3","4");

var arrayValue = new Array("A","B","C","D");

map.add(arrayKey,arrayValue);

var value = map.getValue(arrayKey);

var object1 = new MyObject("小4");

var object2 = new MyObject("小5");

map.add(object1,"小4");

map.add(object2,"小5");

$('#console').html(map.getKeys().join('|') + '
');

})

javascript hashtable实现代码

https://www.jb51.net/article/20372.htm

hash table html,javascript 哈希表(hashtable)的简单实现相关推荐

  1. DHT(Distributed Hash Table,分布式哈希表)

    DHT(Distributed Hash Table,分布式哈希表)类似Tracker的根据种子特征码返回种子信息的网络. DHT全称叫分布式哈希表(Distributed Hash Table),是 ...

  2. JavaScript数据结构——散列表(Hash table,也叫哈希表)

    概念和结构 散列表是根据关键码值(Key value)而直接进行访问的数据结构. 若关键字为k,则其值存放在f(k)的存储位置上.由此,不需比较便可直接取得所查记录.称这个对应关系f为散列函数,按这个 ...

  3. [CareerCup] 8.10 Implement a Hash Table 实现一个哈希表

    8.10 Design and implement a hash table which uses chaining (linked lists) to handle collisions. 这道题让 ...

  4. 数据结构——散列表(Hash Table)(哈希表)

    散列表 散列表英文是hash table,经常被叫做Hash表,或者哈希表. 哈希表其实就是由数组演化而来的,利用的就是数组支持按照下标随机访问数据的特性,可以说散列表就是数组的一种扩展. 百度文库对 ...

  5. 【代码随想录 | day06】(JavaScript) 哈希表理论基础以及相关算法题

    哈希表理论基础 242.有效的字母异位词 349.两个数组的交集 202.快乐数 两数之和 哈希表理论基础 要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map ...

  6. 哈希表(hashtable)的javascript简单实现

    javascript中没有像c#,java那样的哈希表(hashtable)的实现.在js中,object属性的实现就是hash表,因此只要在object上封装点方法,简单的使用obejct管理属性的 ...

  7. C#中哈希表(HashTable)的用法详解

    1.  哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...

  8. 在C#中应用哈希表(Hashtable)

    一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其 ...

  9. 哈希表 Hashtable c# 1613537346

    哈希表 Hashtable c# 1613537346 使用命名空间 using System.Collections; 实例化得到对象 Hashtable 对象 = new Hashtable(); ...

最新文章

  1. MFC控件编程之复选框单选框分组框
  2. Forefront_TMG_2010-TMG建立站点间***
  3. “趣冷淡”怎么看?网络电话寻求共同语言
  4. Forrester:全球供应商在中国处于领导地位 但本土供应商却在私有云市场蒸蒸日上...
  5. android如何实现开机自动启动Service或app
  6. 127 - Accordian Patience
  7. 苏宁MOCK测试桩服务建设实践
  8. 2019递归实现字符串的逆序存储(C++)
  9. 百度阿里腾讯杀入语音识别,这家公司靠什么对抗巨头
  10. WWW'22 | 信息检索方向值得一读的3篇论文详解
  11. Python输出异常信息(行号)
  12. S变换介绍(附代码)
  13. 3000字神经网络论文
  14. 数据结构导论 — (自考)
  15. 层叠上下文、层叠层级、层叠顺序
  16. 日常问题解决之JAVA标签打印设置纸张大小
  17. 【推荐】技术面试结束后,如何向技术面试官提问?
  18. 浅析软文标题写作的三个问题
  19. WiFi探针获取的伪MAC地址是什么?
  20. 另一个视角看春节红包大战,为什么说智能云是百度第二增长引擎

热门文章

  1. ADO操作Excel,提示错误“不可识别的数据库格式”
  2. 中国茶叶市场分析,云贵两地的茶叶种植面积均已超过700万亩
  3. antd table横向滚动条样式自定义
  4. R语言之读取文件夹的数据
  5. *English*英语好句子
  6. EN 671-1固定式消防系统软管—CE认证
  7. 第一次使用Android Studio 需要知道的一切配置。
  8. 关闭Adobe acrobat的自动更新功能
  9. HTML基础--CSS样式表(一)
  10. cli3设置端口号 vue_vuecli3x4x修改项目启动端口