<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        怎樣利用JS自定義哈希表和順序列表

        來源:懂視網 責編:小采 時間:2020-11-27 19:41:25
        文檔

        怎樣利用JS自定義哈希表和順序列表

        怎樣利用JS自定義哈希表和順序列表:/**哈希表*/ var HashMap = function(){ this.table={}; this.count=0;//長度 /**添加對象 * @param key 鍵 * @param obj 對象 */ this.put=function(key,obj){ var v=this.table[key]; if(typeof(v)=
        推薦度:
        導讀怎樣利用JS自定義哈希表和順序列表:/**哈希表*/ var HashMap = function(){ this.table={}; this.count=0;//長度 /**添加對象 * @param key 鍵 * @param obj 對象 */ this.put=function(key,obj){ var v=this.table[key]; if(typeof(v)=

        /**哈希表*/
        var HashMap = function(){
        	this.table={};
         	this.count=0;//長度
        
         	/**添加對象
        	* @param key 鍵
        	* @param obj 對象
        	*/
        	this.put=function(key,obj){
        	 var v=this.table[key];
        	 if(typeof(v)=="undefined")this.count+=1;
        	 this.table[key]=obj;
        	};
        	/**獲得對象
        	* @param key 鍵
        	* @return obj 對象
        	*/
        	this.get=function(key){
        	 return this.table[key];
        	};
        	
        	this.contains=function(key){
        	return (key in this.table);
        	};
        	/**刪除對象
        	* @param key 鍵
        	* @return obj 對象
        	*/
        	this.remove=function(key){
        	 var obj=this.table[key];
        	 if(obj != undefined){
        	 delete this.table[key];
        	 this.count -= 1;
        	 }
        	 return obj;
        	};
        	/**清空所有對象*/
        	this.clear=function(){
        	 this.table={};
         	 this.count=0;
        	};
        	/**當前大小*/
        	this.size=function(){
        	return this.count;
        	};
        	/**是否為空*/
        	this.isEmpty=function(){
        	return this.count <= 0;
        	};
        	/**獲得所有值*/
        	this.values=function(){
        	var values = new Array();
        	for(var prop in this.table){
        	 	values.push(this.table[prop]);
        	}
        	return values;
        	};
        	/**獲得所有鍵*/
        	this.keys=function(){
        	var keys = new Array();
        	for(var prop in this.table){
        	 	keys.push(prop);
        	}
        	return keys;
        	};
        };
        
        /**順序鏈表*/
        var ArrayList = function(){
        	this.count=0;//長度
         	this.initialCapacity = 10;
        	this.list=new Array(this.initialCapacity);
        
        	/**添加對象
        	* @param obj 對象
        	*/
        	this.add=function(obj){
         this.list[this.count]=obj;
         this.count+=1;
        	};
        	/**按索引設置對象
        	* @param obj 對象
        	*/
        	this.set=function(index,obj){
        	if(this.list.length<index){
        	this.list[index]=obj;
        	return true;
        	}else return false;
        	};
        	/**獲得對象
        	* @param index 索引位
        	* @return obj 對象
        	*/
        	this.get=function(index){
        	 return this.list[index];
        	};
        	/**刪除對象
        	* @param index 索引位
        	* @return obj 對象
        	*/
        	this.remove=function(index){
        	 var obj=null;
        	 if(index>=0&&index<this.count){
        	 	 obj = this.list[index];
         for (var i = index; i < this.count - 1; i++) {
         this.list[i] = this.list[i + 1];
         }
         this.list[this.count-1] = null;
         this.count-=1; 
        	 }
        	 return obj;
        	};
        	/**刪除一組對象
        	* @param index 索引位
        	* @param length 長度
        	*/
        	this.removeGroup=function(index,length){
        	 if(index>=0){
        	 var start=index;var end=index+length;
        	 	 var counts=0;var lists=[];
         for (var i = 0; i < this.count; i++) {
         	 if(i>=start&&i<end)continue;
         	 lists[lists.length] = this.list[i];
         	 counts++;
         }
         this.list=lists;
         this.count=counts; 
        	 }
        	};
        	/**清空所有對象*/
        	this.clear=function(){
        	 this.count=0; 
        	 this.list=[];
        	};
        	/**獲得鏈表大小
        	* @return 返回大小
        	*/
        	this.size=function(){
        	 return this.count;
        	};
        	this.getList=function(){
        	return this.list;
        	};
        	this.setList=function(list){
        	this.list=list;
        	this.count=list.length;
        	};
        	/**折半查找
        	* @param value 對比的數據
        	* @return fun 對比方法
        	* @return 返回位置,-1為沒找到
        	*/
        	this.bisearch=function(value,fun){
        	 var pos=-1;
         var start = 0;
         var end = this.count-1;
         var current = parseInt(this.count/2);
         for(var i=0;i<current;i++){
         	 if(!fun(value,this.list[start])){
         	start =start+1;
         	 }else{
         	 	pos=start;break;
         	 }
         	 if(!fun(value,this.list[current])){
         	current =current+1;if(current>end)break;
         	 }else{
         	 	pos=current;break;
         	 }
         }
         return pos;
        	};
        	/**順序查找
        	* @param value 對比的數據
        	* @return fun 對比方法
        	* @return 返回位置,-1為沒找到
        	*/
        	this.search=function(value,fun){
        	 var pos=-1;
         for(var i=0;i<this.count;i++){
         	 if(fun(value,this.list[i])){
         	 	pos=i;break;
         	 }
         }
         return pos;
        	};
        };

        相信看了本文案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!

        推薦閱讀:

        移動端WEB開發中click,touch,tap事件使用詳解

        怎樣操作頁面、可視區、屏幕等寬高屬性

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        怎樣利用JS自定義哈希表和順序列表

        怎樣利用JS自定義哈希表和順序列表:/**哈希表*/ var HashMap = function(){ this.table={}; this.count=0;//長度 /**添加對象 * @param key 鍵 * @param obj 對象 */ this.put=function(key,obj){ var v=this.table[key]; if(typeof(v)=
        推薦度:
        標簽: js has hash
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久香蕉国产线看免费| 亚洲一区在线观看视频| 国产成人亚洲精品电影| 国产免费观看视频| 久久亚洲AV成人无码国产最大| 成年女性特黄午夜视频免费看 | 永久免费av无码不卡在线观看| 免费人成大片在线观看播放| 成人免费无遮挡无码黄漫视频| 亚洲综合av一区二区三区不卡| 国产成人免费高清激情视频| 亚洲午夜理论片在线观看| 中文字幕无码免费久久99| 亚洲狠狠成人综合网| 日韩在线免费看网站| 午夜在线免费视频 | 黄色成人网站免费无码av| 亚洲伦理中文字幕| 小小影视日本动漫观看免费| 青草青草视频2免费观看| 国产成人精品曰本亚洲79ren| 99久久成人国产精品免费| 亚洲伊人久久大香线蕉苏妲己| 亚洲视频免费播放| 亚洲精品无码你懂的| 国产精品亚洲高清一区二区| A片在线免费观看| 成人亚洲国产va天堂| 亚洲最大av无码网址| 18禁无遮挡无码国产免费网站| 亚洲一区AV无码少妇电影| 亚洲乱码中文字幕手机在线| 一级毛片成人免费看免费不卡| 国产成人精品日本亚洲11| 亚洲国产精品一区二区九九 | 亚洲午夜未满十八勿入网站2| 一级毛片**不卡免费播| 亚洲av第一网站久章草| 久久国产精品亚洲综合| 精品国产麻豆免费网站| 高清一区二区三区免费视频|