ES6 - Map() / Set()的用法
Map
是一组键值对的结构,具有极快的查找速度。
声明
var map = new Map();
const getmap = new Map([['aa',1],['bb',2]]);
设值
map.set("key","value");
由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:
例如: map.set("Alan","B");
map.set("Alan","A");
map.get("Alan); // A
map.set("change",function(){///});
size (等同于length)
map.size();
取值
map.get("key");
判断key是否存在
map.has("key");
删除key
map.delete("key");
清空map
map.clear();
Array 中也存在map方法,容易让初始者混淆。 这是两个完全不懂得概念和方法。
array.map(function(currentValue,index,arr), thisValue) 改方法是属于数组的一种操作方法
例如 array = [1,2,3,4,5];
currentValue 就是循环array中的每一个值 1 2 3 4 5
index 就是循环array的index值 0 1 2 3 4
arr 就是 array本身[1,2,3,4,5]
如果想要在array的基础上,计算出新的一个数组,同时该数组还不能被改变,那么就用到了.map()方法
var array2 = array.map(function(currentValue, index, arr){ return currentValue * 2 })
此时就会返回新数组array2 = [2,4,6,8,10 ]
此时 array 没有改变 还是 [1,2,3,4,5]
set是类似组数,返回的对象只有值,没有键值。创建自带去重
声明
var set = new Set();
设值
set.add("newValue");
因为set是没有key值的,所以只能添加一个
size (等同于length)
set.size();
判断key是否存在
set.has("newValue");
删除元素
set.delete("newValue");
清空set
set.clear();
set可用for...of...遍历
for(let v of set){
console.log(v)
}