Map对象,Set对象使用(2)

it2022-05-05  112

今天重点见一下Set

Set 在我印象里它主要就是去重,Set 是一个值的集合,这个集合中所有的值仅出现一次

Set 属性size:和Map的size一样,返回成员的总数

Set的方法:

Set.prototype.add(value):添加某个值,返回 Set 结构本身。Set.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。Set.prototype.clear():清除所有成员,没有返回值。 let set = new Set(); set.add(1);set.add(1);set.add(2); set.has(1);//true set.has(2);//true set.add({x:2}); set.add({x:1}); set.add(function(){}); set.add([]); set.has(2)//true console.log(set.size) set.delete(1); set.forEach(point =>{ if(point.x<5){ set.delete(point) } }) console.log(set.size)//3 set.clear(); console.log(set.size)//0

Set里面的很多方法和Map是一样的(包括下面的)。同样对象,函数,数组,都是唯一的地址,

Set含有has判断特殊值

+0,-0是恒定的,还有undefned与undefined,他俩也是不重复的,而NaN 与 NaN 是不恒等,Set会认为他俩相等

Set的遍历方法:

Set.prototype.keys():返回键名的遍历器。Set.prototype.values():返回键值的遍历器。Set.prototype.entries():返回所有成员的遍历器。Set.prototype.forEach():遍历 Set的所有成员。 const set = new Set(['a', 'b', 'c']) ​ for (let item of set.keys()) { console.log(item) } // a // b // c for (let item of set.values()) { console.log(item) } // a // b // c for (let item of set.entries()) { console.log(item) } // ["a", "a"] // ["b", "b"] // ["c", "c"] // 直接遍历set实例,等同于遍历set实例的values方法 for (let i of set) { console.log(i) } // a // b // c ​ set.forEach((value, key) => console.log(key + ' : ' + value)) ​ // a: a // b: b // c: c

最后对比一下他俩的区别

Set主要还是去重,值唯一,

Map主要是以键值对的形式存在,类似于json,但包含所有数据类型

 

转载于:https://www.cnblogs.com/zhaozhenghao/p/11200036.html


最新回复(0)