我的理解:Set相似于一维数组,Map相似于二维数组或者对象数组
感受仅在于有几个名称和功能相同的基础属性和方法:code
Set是存储了一组有序且值惟一数据的对象
建立及使用对象
let set = new Set() set.add(1) set.add('test') set.add({a:1}) console.log(set) // {1, "test", {…}}
迭代ip
for (let item of set) console.log(item); // 按顺序输出:1, "test", {a:1} for (let item of set.keys()) console.log(item); // 按顺序输出:1, "test", {a:1} for (let item of set.values()) console.log(item); // 按顺序输出:1, "test", {a:1} for (let [key, value] of set.entries()) console.log(key,value); //(键与值相等) 按顺序输出1 1, "test" "test", {a:1} {a:1}
Map是一个键名能够为任意类型的,键值有序的数据对象。
除了键名与有序这两个特征以外,Map与对象的区别还有get
建立与使用it
let map = new Map() let obj = {a:1} let func = function(){} map.set(1,'value1') map.set(obj,'obj') map.set(func,'function') console.log(map) // {1 => "value1", {…} => "obj", ƒ => "function"} map.get(obj) // 'obj' map.get(func) // 'function'
迭代方式与Set一致io
参考资料:
1.https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set
2.https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Mapconsole