标签:com div strong 自己的 属性 on() undefined color class
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
let map = new Map(); map.set(‘name‘,‘张三‘); map.set(‘age‘,20); console.log(map); //Map(2) {"name" => "张三", "age" => 20}
key 是字符串
var myMap = new Map(); var keyString = "a string"; myMap.set(keyString, "和键‘a string‘关联的值"); myMap.get(keyString); // "和键‘a string‘关联的值" myMap.get("a string"); // "和键‘a string‘关联的值" // 因为 keyString === ‘a string‘
key 是对象
var myMap = new Map(); var keyObj = {}, myMap.set(keyObj, "和键 keyObj 关联的值"); myMap.get(keyObj); // "和键 keyObj 关联的值" myMap.get({}); // undefined, 因为 keyObj !== {}
key 是函数 var myMap = new Map(); var keyFunc = function () {}, // 函数 myMap.set(keyFunc, "和键 keyFunc 关联的值"); myMap.get(keyFunc); // "和键 keyFunc 关联的值" myMap.get(function() {}) // undefined, 因为 keyFunc !== function () {}
key 是 NaN var myMap = new Map(); myMap.set(NaN, "not a number"); myMap.get(NaN); // "not a number" var otherNaN = Number("foo"); myMap.get(otherNaN); // "not a number"
虽然 NaN 和任何值甚至和自己都不相等(NaN !== NaN 返回true),NaN作为Map的键来说是没有区别的。
1.for...of for (var [key, value] of myMap) { console.log(key + " = " + value); } 2.forEach() var myMap = new Map(); myMap.set(0, "zero"); myMap.set(1, "one"); // 将会显示两个 logs。 一个是 "0 = zero" 另一个是 "1 = one" myMap.forEach(function(value, key) { console.log(key + " = " + value); }, myMap)
Map 对象的操作
map.has(‘name‘);//true map.delete(‘name‘); map.clear(); console.log(map); map.set([‘a‘,[1,2,3]],‘hello‘); console.log(map);
集合:表示无重复值的有序列表
var mySet = new Set([1, 2, 3, 4, 4]); [...mySet]; // [1, 2, 3, 4]
并集
交集
差集
// 添加元素
set.add(2);
set.add(‘4‘);
set.add(‘4‘);
set.add([‘hello‘,‘world‘,3]);
// 删除元素
set.delete(2);
// 校验某个值是否在set中
console.log(set.has(‘4‘));
console.log(set.size);
标签:com div strong 自己的 属性 on() undefined color class
原文地址:https://www.cnblogs.com/sunny666/p/12984458.html