js实现了哈希表的赋值、取值和遍历操作示例
本文给出了一个例子来描述js实现的hashtable的赋值、取值和遍历操作。分享给大家参考,如下:
Hashtable应该是c#中的一个概念,用来提高赋值、取值、遍历和排序操作的效率。其实我们在想到这个事情的时候,之前也经常会遇到这样的面试问题。大数组中可能有10万个。如何快速知道其中最频繁的出现,那么我们可能要在这里用到Hashtable的相关知识。在Javascript中,对象的实现是一个hashtable,所以只要将point方法封装在object上,再用原来的hasOwnProperty方法就可以实现简单高效的Hashtable。
1.什么是哈希表
二、哈希表的简单操作
第三,js模拟哈希表的简单操作
1.什么是哈希表
在框架中,哈希表是系统提供的容器。Collections命名空间,用于处理和表示像key/value这样的键值对,其中key通常可以用来快速查找,key区分大小写;该值用于存储与键对应的值。哈希表中的键/值键-值对都是对象类型的,所以哈希表可以支持任何类型的键/值键-值对。
二、哈希表C#的简单操作
在哈希表中添加键/值键值对:
HashtableObject。添加(键、值);从哈希表中删除键/值键值对:
HashtableObject。移除(键);从哈希表中删除所有元素:
HashtableObject。clear();确定哈希表是否包含特定的密钥:
HashtableObject。包含(键);第三,js模拟哈希表的简单操作
哈希表。prototype={ contributor : hashtable,//initialize 3360 function(){ this。obj={ };},//获取hashTable count : function(){ var count=0;for(var i in this.content)计数;返回计数;},//返回items : function(key){ if(this。contains(key)){返回这个。hashTable中的obj[key];}},//将值添加到hashtable add:函数(键,值){if (this。obj . hasown property(key)){ return false;} else { this . obj[key]=value;返回真;}},//清除值clear:function () {this。哈希表中的obj={ };},//检查hashTable对象是否包含此属性contains : function(key){返回this . obj . hasown property(key);},//移除hashTable remove : function(key)中对象的值{删除此。obj[key];}}这样我们就可以像c#语言一样操作了。
:还有一个简单的变体版本
//js哈希表函数哈希表(){ this .ObjArr={ };这个。计数=0;//添加这个Add=函数(键,值){ if (this .奥贾尔。hasown属性(键)){ return false//如果键已经存在,不添加}else { this .ObjArr[key]=值;这个。计数;返回真;} } //是否包含某项这个包含=函数(键){ 0返回这个ObjArr.hasOwnProperty(键);} //取某一项其实等价于这个。这个GetValue=function(key){ if (this .包含(键)){ 0返回这个ObJar[key];}else { throw Error('Hashtable不包含key: ' String(键));//脚本错误//返回;} } //移除这个移除=功能(键){如果(这.包含(键)){删除此ObJar[key];这个。计数-;} } //清空这个Clear=function(){这个.ObjArr={ };这个。计数=0;}}//员工函数员工(id,userName){这。id=idthis.userName=用户名;}函数测试(){ var ht=new HashTable();var tmpEmployee=null for(var I=1;i6;i ) { tmpEmployee=新员工(I,‘Employee _’I);总远视添加(一、tmpEmployee);} for(var I=1;i=ht .计数;I){ 0警报(ht .GetValue(i).用户名);//其实等价于总远视我.用户名//警报(ht .我.用户名);} ht .移除(1);警报(ht .包含(1));//假警报(ht .包含(2));//true //alert(ht .GetValue(1));//异常定义变量结果=ht .GetValue(2);如果(结果!=null){警报('员工id : '结果。' id ';用户名: '结果。用户名);} ht .添加(2 ',这一个键已经存在!');//添加无效//ht .clear();//清空警报(ht .计数);}最后解决一下,开头说的那个问题
数组。原型。MaxNum=function(){ var arr=this,obj={ };for(var i=0,len=arr.length伊琳;I){ var key=arr[I];if(!obj[key]){ obj[key]=1;} else { obj[key];} } var max=-1,maxStrfor(在obj中键入){ if(obj[key]max){ max=obj[key];maxStr=key } }//alert(maxStr);返回[maxStr,max];}PS:这里再为大家提供几款混杂操作相关工具供大家参考使用:
在线散列/哈希算法加密工具:http://工具。JB 51。网络/密码/哈希_加密
在线MD5/哈希/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:http://工具。JB 51。net/密码/hash _ MD5 _ sha
更多关于Java脚本语言相关内容感兴趣的读者可查看本站专题: 《JavaScript数组操作技巧总结》 、 《JavaScript排序算法总结》 、 《JavaScript遍历算法与技巧总结》 、 《JavaScript数学运算用法总结》 、 《JavaScript数据结构与算法技巧总结》 、 《JavaScript查找算法技巧总结》 及《JavaScript错误与调试技巧总结》
希望本文所述对大家Java脚本语言程序设计有所帮助。
版权声明:js实现了哈希表的赋值、取值和遍历操作示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。