欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自己用JS写的Map(用来代替Activex Scripting.Dictionary)

程序员文章站 2022-06-05 20:29:17
...
由于目前项目需要,要将部分代码能在FF中显示,所以老代码中的通过new ActiveXObject("Scripting.Dictionary")实现的Map则不能使用,通过zozoh的指点我自己写了一个,目前已在项目中使用,现在分享给大家。
如果哪里有错误希望大家批评。
function Map() 
{
	this.map = {}; //initialize with an empty array
	this.Count=0;
}
Map.prototype.size = function() 
{
	return this.Count;
}
Map.prototype.Item = function(key) 
{
	if (this.Exists(key)) {
		return this.map[key];
	}else{
		return null;
	}
}
Map.prototype.Add = function(key, value){
    if (!this.Exists(key)) {
        this.Count++;
    }
    this.map[key] = value;
}
Map.prototype.Items = function() 
{
	var array = [];
	for(var key in this.map){
		array.push(this.map[key]);
	}
	return array;
}
Map.prototype.Keys = function() 
{
	var array = [];
	for(var key in this.map){
		array.push(key);
	}
	return array;
}
Map.prototype.Exists = function(key) 
{
	if(typeof this.map[key]!="undefined"){
		return true;
	}else{
		return false;
	}
}
Map.prototype.Remove = function(key) 
{
	var newMap={};
	for(var i in this.map){
		if(i!=key){
			newMap[i]=this.map[i];
		}else{
			this.Count--;
		}
	}
	this.map = newMap;
}
Map.prototype.RemoveAll = function() 
{
	this.map = {};
	this.Count=0;
}