Array.prototype.remove = function(s) {
for (var i = 0; i < this.length; i++) {
if (s == this[i])
this.splice(i, 1);
}
}
function Map() {
/** 存放键的数组(遍历用到) */
this.keys = new Array();
/** 存放数据 */
this.data = new Object();
/**
* 放入一个键值对
* @param {String} key
* @param {Object} value
*/
this.put = function(key, value) {
if(this.data[key] == null){
this.keys.push(key);
}
this.data[key] = value;
};
/**
* 获取某键对应的值
* @param {String} key
* @return {Object} value
*/
this.get = function(key) {
if (this.data[key] == null && this.data['Error.default'] != null){
return this.data['Error.default'] }else{
return this.data[key];
}
};
/**
* 删除一个键值对
* @param {String} key
*/
this.remove = function(key) {
this.keys.remove(key);
this.data[key] = null;
};
/**
* 遍历Map,执行处理函数
*
* @param {Function} 回调函数 function(key,value,index){..}
*/
this.each = function(fn){
if(typeof fn != 'function'){
return;
}
var len = this.keys.length;
for(var i=0;i<len;i++){
var k = this.keys[i];
fn(k,this.data[k],i);
}
};
/**
* 获取键值数组(类似Java的entrySet())
* @return 键值对象{key,value}的数组
*/
this.entrys = function() {
var len = this.keys.length;
var entrys = new Array(len);
for (var i = 0; i < len; i++) {
entrys[i] = {
key : this.keys[i],
value : this.data[i]
};
}
return entrys;
};
/**
* 判断Map是否为空
*/
this.isEmpty = function() {
return this.keys.length == 0;
};
/**
* 获取键值对数量
*/
this.size = function(){
return this.keys.length;
};
/**
* 重写toString
*/
this.toString = function(){
var s = "{";
for(var i=0;i<this.keys.length;i++,s+=','){
var k = this.keys[i];
s += k+"="+this.data[k];
}
s+="}";
return s;
};
}
分享到:
相关推荐
### JavaScript中的Map应用 在JavaScript中,`Map`对象是一种内置的数据结构,它保存键值对,并且可以按插入顺序记住元素。与普通的JavaScript对象不同的是,`Map`的键可以是任何类型的值(不仅仅是字符串或符号)...
- `has(key)`:判断Map中是否存在指定键。 - `delete(key)`:删除指定键的键值对。 - `clear()`:清空Map中的所有键值对。 3. 属性和方法: - `size`:返回Map中键值对的数量。 - `forEach(callbackFn[, ...
js map js map js map js map js map js map
javascript 模拟 java中的 List,Map js文件为 js/utils.js IE6.0 测试通过 <br>List: add(var obj) //添加一个元素 remove(var index) //删除一个元素 get(var index) //获取一个元素 remove...
与数组不同,Map的键是有序的,并且提供了几个方便的方法,如set(key, value)用于设置键值对,get(key)用于获取键对应的值,delete(key)用于删除键值对,size属性用于获取Map中键值对的数量。`map.js` 文件可能会...
总结,`Map`在JavaScript中扮演着重要的角色,特别是在处理复杂数据结构、缓存、对象关系等方面。理解并熟练运用`Map`,能有效提升我们的编程效率和代码质量。通过实践编写自己的`Map`实现,有助于深入理解其底层...
包含:popper.min.js.map、popper.min.js....其实可以直接输入网址<script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script> 中的网址另存为,或者直接复制网页代码另存为,map文件就是...
- `set(key, value)`: 向Map中添加一个键值对。 - `get(key)`: 通过键获取对应的值,如果键不存在则返回undefined。 - `has(key)`: 检查Map中是否存在指定的键。 - `delete(key)`: 删除指定键的键值对。 - `...
不同于对象,Map中的元素会按照插入的顺序进行迭代。例如,在实现一个缓存系统时,可以使用Map来存储最近访问的项目,并保持它们的访问顺序。 此外,Map可以与其他数据结构结合使用,如Set。例如,我们可以创建一个...
js中使用map形式存取遍历
在JavaScript中,`Map`是一种内置的数据结构,用于存储键值对。相比于对象,`Map`的优势在于它可以使用任何类型的值作为键,包括对象。在本文中,我们将深入探讨一种高性能的JavaScript `Map`实现,它基于JSON,具有...
由于原本把需要的数据存放到cookie中,但是cookie不能的key不能自动转译中文,出现乱码,后台服务器报错:Control character in cookie value or attribute.所以改为自定义map集合
在JavaScript中,`Map`集合是一个内置的数据结构,用于存储键值对,它与对象不同,因为对象的键必须是字符串或符号,而`Map`则可以使用任何可哈希的值作为键。这篇博客文章可能探讨了如何通过自定义方式实现一个类似...
js Map对象封装 和 java 的使用方法一样.
自定义javascript的Map类,使用习惯完全依据于java的map使用习惯编写,java中map的用法基本一样,导入包即可使用
* put(key, value) 向MAP中增加元素(key, value) * remove(key) 删除指定KEY的元素,成功返回True,失败返回False * get(key) 获取指定KEY的元素值VALUE,失败返回NULL * element(index) 获取指定索引的元素...
使用js实现map工具类
在JavaScript的世界里,`Map`对象是一个非常重要的数据结构,它允许我们存储键值对,其中键可以是任何类型的...在阅读`MapUtil.js`源码时,可以关注这些方法的实现细节,理解它们如何优化和扩展了原生`Map`对象的能力。
在这种情况下,如果需要在这些浏览器中使用`map`功能,可以引入polyfill,或者使用Underscore.js、Lodash等库,它们提供了兼容旧环境的`map`实现。 3. `map`与`for`循环的性能比较: 在大多数情况下,`for`循环可能...
- `size()`:返回Map中的元素数量。 - `isEmpty()`:判断Map是否为空。 - `clear()`:清空Map的所有元素。 - `put(key, value)`:向Map中添加或更新键值对。 - `remove(key)`:移除指定键的元素,并返回操作结果。 -...