javascript之Map
javascript中的map,我⽤的不是特别多,倒是Java中的Map或HashMap,经常⽤。
顺便围绕⼏个⽅⾯介绍⼀下map?
1.Map对象
Map对象是⼀种有对应键值对的对象,JS的Object也是键值对的对象。
ES6中的Map相对Object对象有⼏个区别?
(1)Object对象有原型,也就是说它有默认的key值在对象上⾯,除⾮我们使⽤ate(null)创建⼀个没有原型的对象;
(2)在Object中,只能把String和Symbol作为key值,但是在Map中,key值可以是任何基本类型(String,Number,Boolean,undefined,NaN…),或者对象(Map,Set,Object,Function,Symbol,null…);
(3)通过Map中的size属性,可以很⽅便地获取Map长度,要获取Object的长度,你只能⽤别的⽅法;
Map实例对象的key值可以为⼀个数组或者⼀个对象,或者⼀个函数,⽐较随意,⽽且Map对象实例中数
据的排序是根据⽤户push的顺序进⾏排序的,⽽Object实例中key,value的顺序则有些规律(它们会先排数字开头的值,然后才是字符串开头的key值);
2.Map实例属性
map.size这个属性和数组的length功能⼀样,都表⽰当前实例的长度。
3.Map实例的⽅法
ajax实例里面的函数clear() 删除所有的键值对;
delete(key) 删除指定键;
entries() 返回⼀个迭代器,迭代器按照对象的插⼊顺序返回[key,value];
forEach(callback,context) 循环执⾏函数并把键值对作为参数,context为执⾏函数的上下⽂this;
get(key) 返回Map对象key相对的value值;
has(key) 返回布尔值,判断Map对象是否存在指定的key;
keys() 返回⼀个迭代器,迭代器按照插⼊的顺序返回每⼀个key元素;
set(key,value) 给Map对象设置key/value键值对,返回这个Map对象(相对于JavaScript的Set,Set对象添加元素的⽅法叫add,⽽Map对象添加元素的⽅法为set)
iterator 和entireds()⽅法⼀样,返回⼀个迭代器,迭代器按照对象的插⼊顺序返回[key,value]
代码⽰例如下(这段与后台交互的代码,主要是为了测试):
<html>
<head>
<script src="jquery-1.8.0.min.js"></script>
</head>
<body>
<script>
$.ajax({
url:"localhost:2019/comments/recentsComments",
type:"GET",
contentType: 'application/json;charset=utf-8',
dataType : 'json',
success:function(data){
console.de);
var m = new Map();
m.set("data",data.list);
console.("data"));
},error:function(){
}
});
</script>
</body>
</html>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。