<html>
<head>
<title>Test Map</title>
<script type="text/javascript">
<!--
https://www.cnblogs.com/bigtallhcy/p/5586489.html
/**
* Simple Map
*
*
* var m = new Map();
* m.put('key','value');
* ...
* var s = "";
* m.each(function(key,value,index){
* s += index+":"+ key+"="+value+"/n";
* });
* alert(s);
*
*/
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) {
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;
};
}
function testMap(){
var m = new Map();
m.put('key1','aaa');
m.put('key2','bbb');
m.put('key3','ccc');
alert("init:"+m);
m.put('key1','aaaxg');
alert("set key1:"+m);
m.remove("key2");
alert("remove key2: "+m);
var s ="";
m.each(function(key,value,index){
s += index+":"+ key+"="+value+"\n";
});
alert(s);
}
//-->
</script>
</head>
<body>
<input type="button" value="test" onclick="testMap()">
</body>
</html>
分享到:
相关推荐
js终于有了自己的Map了,类似与java的Map对象。此文件是源代码,亲测有类似于java的Map对象的类似方法:put(key,value)、get(key)、keys()、values()、size()、isEmpty()、remove(key)、clear()、element(index)、...
总结来说,为了在JavaScript中实现类似于Java Map的功能,我们可以选择自定义对象或使用ES6的Map数据结构。自定义对象简单易懂,适用于不涉及复杂操作的情况;而ES6的Map则提供了更为强大和标准的API,适用于大型...
javascript 自定义对象实现Java中的Map对象功能 Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一个自定义对象,这个对象内包含一个数组来存储数据...
本文实例讲述了JS自定义对象实现Java中Map对象功能的方法。分享给大家供大家参考。具体分析如下: Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一...
js Map对象封装 和 java 的使用方法一样.
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并 Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
在Java编程中,Map接口是集合框架的重要组成部分,它提供了键值对(key-value pair)的存储方式。Map的四大遍历方式分别是: 1. 使用迭代器 Iterator: ```java Map, String> map = new HashMap(); for (Iterator...
这就是如何在Java中读取JSON文件并将其转化为Map进行取值的基本步骤。在实际开发中,你可能需要处理更复杂的JSON结构,包括嵌套的对象和数组,以及各种类型的值。Jackson库提供了丰富的API来应对这些情况,如`@...
JavaScript实现Java中Map容器的方法主要依赖于JavaScript对象的特性,即对象中不能有重复的属性名,这与Java中的Map功能相似。在给出的代码示例中,通过构造函数functionMap创建了一个“Map”对象,并为该对象定义了...
本篇文章将深入探讨如何将Java中的List和Map对象转化为JSON格式,并涉及与AJAX交互的相关知识。 1. **Java JSON库**: 在Java中,我们可以使用多种库来实现对象到JSON的转换,如Jackson、Gson、Fastjson等。这里以...
在Java编程环境中,有时我们需要与JavaScript交互,例如执行一些动态脚本...开发者可以轻松地在Java程序中执行JavaScript代码,调用JavaScript函数,甚至传递Java对象到JavaScript环境,从而实现两者之间的协同工作。
根据提供的文件信息,本文将详细解释如何在JavaScript中模拟Java中的`Map`功能,并实现一组基本的操作方法。这种做法有助于理解两种语言之间处理键值对数据结构的不同方式,并且能够帮助开发者利用JavaScript来构建...
然后,我们使用 for 循环遍历 JSONObject 对象的键值对,如果值是 JSONArray,我们将其转换为 List<Map, Object>>,否则,我们直接将其添加到 map 对象中。 四、使用场景 将 json 转换为 map 的方法广泛应用于以下...
在某些场景下,如果需要兼容JavaScript或者使用类似的方法,可能会使用`Object.keys(map).length`,但这是JavaScript中的写法,在Java中并不适用。 3. **Java 8及Lambda表达式遍历Map** 自Java 8开始,引入了...
本文将深入探讨如何在不依赖第三方库的情况下,实现JSON与Java对象(如Map、List)之间的互换。我们将分析标题提及的两个Java类——`jsonobject.java`和`JsonUtil.java`。 首先,`JsonUtil.java`很可能是这个功能的...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...
要使用 `json-lib` 实现 JSON 与 Java 对象的互转,首先需要在项目中引入该库。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml <groupId>net.sf.json-lib</groupId> <artifactId>json-lib...