1.功能介绍
Set
对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。另外,NaN
和undefined
都可以被存储在Set 中, NaN
之间被视为相同的值(NaN被认为是相同的,尽管 NaN !== NaN)
2.基本使用
const set = new Set() // 添加元素 set.add(1) set.add('2') set.add('2') set.add(true) console.log(...set) // 1 "2" true,注意...set ==> 1,"2",true // 删除元素 set.delete('2') console.log(...set) // 1 true console.log(set.delete(3)) // false 删除失败,set中不存在元素3 // 判断元素是否存在 console.log(set.has(1)) // true console.log(set.has(NaN)) // false,set中不存在元素NaN // 遍历set for (let [key, value] of set.entries()) { console.log(key, value) // 1 1\ntrue true,set的entries()中key, value相等 } set.forEach((value, key) => { console.log(value, key) // 1 1\ntrue true }) // 获取set中元素的数目 console.log(set.size) // 2 set.clear() console.log(set.size) // 0 // 转换成数组(下面案例已屏蔽上方的clear方法) console.log([...set]) // (2) [1, true] console.log(Array.from(set)) // (2) [1, true] console.log(Array.from(set.values())) // (2) [1, true] console.log(Array.from(set.keys())) // (2) [1, true]
3.应用举例
// 数组去重 const repeatArr = [1, 2, 2, 3, 3, 4, 5] console.log(Array.from(new Set(repeatArr))) // (5) [1, 2, 3, 4, 5] // 字符串去重(大小写敏感) const set = new Set('woork') console.log(set) // Set(4) {"w", "o", "r", "k"} console.log([...set].join('')) // work console.log(new Set('wOork')) // Set(5) {"w", "O", "o", "r", "k"}
4.参考文档
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set