es6中的Set和Map内容整理

es6中的Set和Map内容整理

Set:是一种新的数据结构,类似于数组,但是里面的值都是唯一的

set本身是一个构造函数,可以通过const set = new Set()来创建一个set类型的值,通过构造函数创建后,会得到set原型上的一些方法

ps:通过构造函数创建新对象的过程,开辟一块新内存,创建一个空对象,设置原型继承原型上的方法,绑定this,执行构造函数中的方法,返回这个新对象

一般可以用set去除数组中的重复元素:[...new Set(array)], Array.from(new Set(array))]

Set上的一些方法:

add(): 添加元素

delete():删除某个值

has(): 判断set中是否有这个值

clear():清空所有值

遍历操作

keys():返回键名

values(): 返回键值

entries():返回键值对

forEach():使用回调函数遍历每个成员

let set = new Set(['red', 'green', 'blue']);for (let item of set.keys()) {  console.log(item);}// red// green// bluefor (let item of set.values()) {  console.log(item);}// red// green// blue
let set = new Set(['red', 'green', 'blue']);
// for...of 循环(set数据结构默认可遍历,可以直接用for of 循环替换values())for (let x of set) { console.log(x);}// red// green// blue

for (let item of set.entries()) { console.log(item);}// ["red", "red"]// ["green", "green"]// ["blue", "blue"]

使用forEach循环

let set = new Set([1, 4, 9]);set.forEach((value, key) => console.log(key + ' : ' + value))// 1 : 1// 4 : 4// 9 : 9

可以间接使用数组中的方法

let set = new Set([1, 2, 3]);set = new Set([...set].map(x => x * 2));// 返回Set结构:{2, 4, 6}let set = new Set([1, 2, 3, 4, 5]);set = new Set([...set].filter(x => (x % 2) == 0));// 返回Set结构:{2, 4}

WeakSet:

与Set的区别

WeakSet 的成员只能是对象,而不能是其他类型的值。

WeakSet 中的对象都是弱引用,即垃圾回收机制不考虑 WeakSet 对该对象的引用

weakSet中的一些方法:

add(), delete(), has()

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部