Set、WeakSet、Map及WeakMap
Set和Map主要的应用场景在于 数据重组 和 数据储存Set是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构
# 1. 集合(Set)
ES6新增的一种新的数据结构,类似于数组,但成员是唯一且无序的,没有重复的值。
Set 本身是一种构造函数,用来生成 Set 数据结构。
new Set([iterable])
@前端进阶之旅: 代码已经复制到剪贴板
举个例子:
const s = new Set()
[1, 2, 3, 4, 3, 2, 1].forEach(x => s.add(x))
for (let i of s) {
console.log(i) // 1 2 3 4
}
// 去重数组的重复对象
let arr = [1, 2, 3, 2, 1, 1]
[... new Set(arr)] // [1, 2, 3]
@前端进阶之旅: 代码已经复制到剪贴板
Set 对象允许你储存任何类型的唯一值,无论是原始值或者是对象引用。
向 Set 加入值的时候,不会发生类型转换,所以5和"5"是两个不同的值。Set 内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,它类似于精确相等运算符(===),主要的区别是** Set 认为NaN等于自身,而精确相等运算符认为NaN不等于自身。**
let set = new Set();
let a = NaN;
let b = NaN;
set.add(a);
set.add(b);
set // Set {NaN}
let set1 = new Set()
set1.add(5)
set1.add('5')
console.log([...set1]) // [5, "5"]
@前端进阶之旅: 代码已经复制到剪贴板
-
Set 实例属性
-
constructor: 构造函数
-
size:元素数量<
-