/**
* Map
* @returns {Map}
*/
function Map(){
this._entrySet_ = new Array();
}
Map.prototype = new Object();
/**
* Entry
* @param key
* @param value
*/
Map.prototype.Entry = function(key,value){
this.key = key;
this.value = value;
this.toString = function(){
return "\"" + key + "\":\"" + value + "\"";
};
}
/**
* put方法
* @param key
* @param value
*/
Map.prototype.put = function(key,value){
var index = this.indexOfKey(key);
if(index != -1){
this._entrySet_[index].value = value;
}
else{
var entry = new this.Entry(key,value);
this._entrySet_.push(entry);
}
}
/**
* 查找指定key的索引
* @param key
* @returns {Number}
*/
Map.prototype.indexOfKey = function(key){
var entry = null;
for(var i = 0;i < this._entrySet_.length;i++){
entry = this._entrySet_[i];
if(entry.key == key){
return i;
}
}
return -1;
}
小弟自己写的这个js在IE8下报错,不管put方法执行多少次,_entrySet_的length总为0,也就是put方法放不进去,在IE9及以上版本是没有问题的。求大神解决一下。
* Map
* @returns {Map}
*/
function Map(){
this._entrySet_ = new Array();
}
Map.prototype = new Object();
/**
* Entry
* @param key
* @param value
*/
Map.prototype.Entry = function(key,value){
this.key = key;
this.value = value;
this.toString = function(){
return "\"" + key + "\":\"" + value + "\"";
};
}
/**
* put方法
* @param key
* @param value
*/
Map.prototype.put = function(key,value){
var index = this.indexOfKey(key);
if(index != -1){
this._entrySet_[index].value = value;
}
else{
var entry = new this.Entry(key,value);
this._entrySet_.push(entry);
}
}
/**
* 查找指定key的索引
* @param key
* @returns {Number}
*/
Map.prototype.indexOfKey = function(key){
var entry = null;
for(var i = 0;i < this._entrySet_.length;i++){
entry = this._entrySet_[i];
if(entry.key == key){
return i;
}
}
return -1;
}
小弟自己写的这个js在IE8下报错,不管put方法执行多少次,_entrySet_的length总为0,也就是put方法放不进去,在IE9及以上版本是没有问题的。求大神解决一下。