var map = new HashMap();
mapput("a","1");
mapput("b","2");
遍历:
var key = mapkeySet();
for (var i in key){
alert(mapget(key[i]));
}
注:js 中使用map,要先导入一个HashMapjs文件
没要求,引入这个文件之后,可以直接使用hashmap了
Map映射是ES6里面新增的一个对象,是一组键值对的结构,具有极快的查找速度。
Map是类似Object的一种键值对集合,区别在于Map的键不仅限于是字符串,其他各种类型的值包括对象都可以成为Map的键
Set也是ES6新增的对象,Set是一组key的集合,但不存储value, 而且key不重复,可自动排重
add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。
原文链接: >
给个实例,代码如下:
Arrayprototyperemove = function(s) {
for (var i = 0; i < thislength; i++) {
if (s == this[i])
thissplice(i, 1);
}
}
/
Simple Map
var m = new Map();
mput('key','value');
var s = "";
meach(function(key,value,index){
s += index+":"+ key+"="+value+"/n";
});
alert(s);
@author dewitt
@date 2008-05-24
/
function Map() {
/ 存放键的数组(遍历用到) /
thiskeys = new Array();
/ 存放数据 /
thisdata = new Object();
/
放入一个键值对
@param {String} key
@param {Object} value
/
thisput = function(key, value) {
if(thisdata[key] == null){
thiskeyspush(key);
}
thisdata[key] = value;
};
/
获取某键对应的值
@param {String} key
@return {Object} value
/
thisget = function(key) {
return thisdata[key];
};
/
删除一个键值对
@param {String} key
/
thisremove = function(key) {
thiskeysremove(key);
thisdata[key] = null;
};
/
遍历Map,执行处理函数
@param {Function} 回调函数 function(key,value,index){}
/
thiseach = function(fn){
if(typeof fn != 'function'){
return;
}
var len = thiskeyslength;
for(var i=0;i<len;i++){
var k = thiskeys[i];
fn(k,thisdata[k],i);
}
};
/
获取键值数组(类似Java的entrySet())
@return 键值对象{key,value}的数组
/
thisentrys = function() {
var len = thiskeyslength;
var entrys = new Array(len);
for (var i = 0; i < len; i++) {
entrys[i] = {
key : thiskeys[i],
value : thisdata[i]
};
}
return entrys;
};
/
判断Map是否为空
/
thisisEmpty = function() {
return thiskeyslength == 0;
};
/
获取键值对数量
/
thissize = function(){
return thiskeyslength;
};
/
重写toString
/
thistoString = function(){
var s = "{";
for(var i=0;i<thiskeyslength;i++,s+=','){
var k = thiskeys[i];
s += k+"="+thisdata[k];
}
s+="}";
return s;
};
}
function testMap(){
var m = new Map();
mput('key1','Comtop');
mput('key2','南方电网');
mput('key3','景新花园');
alert("init:"+m);
mput('key1','康拓普');
alert("set key1:"+m);
mremove("key2");
alert("remove key2: "+m);
var s ="";
meach(function(key,value,index){
s += index+":"+ key+"="+value+"/n";
});
alert(s);
}
html代码:
[c-sharp] view plain copy
<html>
<head>
<title>Test Map</title>
<mce:script language="javascript" src="mapjs" mce_src="mapjs"><!--
// --></mce:script>
</head>
<body>
<input type="button" value="test" onclick="testMap()">
</body>
</html>
(一)Map 数据结构
1Map 数据结构,类似于对象,键值对的集合, 所有的数据都是唯一的,不会重复,每条数据都需要放在一个数组中,它本身就是一个构造函数
size 数据的长度
set() 添加一个数据
delete() 删除一条数据
get () 获取一条数据
has() 查找某条数据,返回一个布尔值
clear() 删除所有数据
参考资料:
(JS文档自译)
Object和Map非常相似,两者都可以完成键-值对的设置、获取value、删除key并且根据key获取对应的value。因此,在过去Object经常被当作Map来使用。但是,Object和Map的不同之处会让Map在特定条件下成为一个更佳的选择。
以上就是关于javascript怎么遍历map全部的内容,包括:javascript怎么遍历map、JS新增对象Map、Set、js map.entrys 怎么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)