码迷,mamicode.com
首页 > Web开发 > 详细

js下的map数据对象构建

时间:2016-05-30 12:35:55      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:


mapUtil = function(){
this.map = new Array();
};

mapUtil.prototype = {
//Update or Insert
add : function(key, value){
for (var i = 0; i < this.map.length; i++)
{
if ( this.map[i].key+"" === key+"" )
{
this.map[i].value = value;
return;
}
}

this.map[this.map.length] = new struct(key, value);
},
put : function(key, value){
for (var i = 0; i < this.map.length; i++)
{
if ( this.map[i].key+"" === key+"" )
{
this.map[i].value = value;
return;
}
}

this.map[this.map.length] = new struct(key, value);
},
//Query
get : function(key){
for (var i = 0; i < this.map.length; i++)
{
if ( this.map[i].key+"" == key +"")
{
return this.map[i].value;
}
}

return undefined;
},
getKeyByIndex : function(index){
if(index >= 0 && index < this.map.length){
return this.map[index].key;
}

return null;
},
getByIndex : function(index){
if(index >= 0 && index < this.map.length){
return this.map[index].value;
}

return null;
},
getIndexByKey:function(key){
for (var i = 0; i < this.map.length; i++)
{
if ( this.map[i].key+"" === key +"")
{
return i;
}
}
},
//Delete
remove : function(key){
var v;
var len = this.map.length;
for (var i = 0; i < len; ++i)
{
v = this.map.pop();
if ( v.key === key ){
continue;
}

this.map.unshift(v);
}
},
removeByIndex : function(index){
var v;
var len = this.map.length;
for (var i = 0; i < len; i++)
{
v = this.map.shift();
if ( i === index ){
continue;
}

this.map.push(v);
}
},

//clear
clear : function(){
this.map.splice(0, this.map.length);
},
removeAll : function(){
this.map.splice(0, this.map.length);
},

size: function(){
return this.map.length;
},

isEmpty : function(){
return (this.map.length <= 0);
},
toString:function(){
var v="";
for (var i = 0; i < this.map.length; i++){
v+=this.map[i].key+":"+this.map[i].value+";"
}
return v;
}
};

//模拟<key, value>数据结构
function struct(key, value){
this.key = key;
this.value = value;
};

js下的map数据对象构建

标签:

原文地址:http://www.cnblogs.com/emmalai/p/5541808.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!