什么是Set()
Set对象是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即 Set 中的元素是唯一的。我们可以利用这一唯一特性进行数组的去重工作。
元素属性
Set.prototype.size
返回 Set 对象中的值的个数
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.add(2) //Set [ 1, 2 ]
mySet.size // 2
添加元素
Set.prototype.add(value)
在Set对象尾部添加一个元素。返回该Set对象。
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.add(2) //Set [ 1, 2 ]
删除所有元素
Set.prototype.clear()
移除Set对象内的所有元素。
示例:
let mySet = new Set();
mySet.clear()
删除某个元素
Set.prototype.delete(value)
移除Set中与这个值相等的元素。
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.add(2) //Set [ 1, 2 ]
mySet.delete(1) // true,从set中移除1
判断某元素是否存在
Set.prototype.has(value)
返回一个布尔值,表示该值在Set是否存在。
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.has(1) // true,1在set中存在
遍历元素 forEach()
Set.prototype.forEach(callbackFn[, thisArg])
按照插入顺序,为Set对象中的每一个值调用一次callBackFn
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.add(2) //Set [ 1 , 2]
mySet.forEach(function(value) {
console.log(value)
})
// 1
// 2
遍历元素 keys()
Set.prototype.keys()
与values()方法相同,返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.add(2) //Set [ 1 , 2]
for ( let item of mySet. Keys()) console.log(item); // 1, 2
遍历元素 values()
Set.prototype.values()
返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.add(2) //Set [ 1 , 2]
for ( let item of mySet. values()) console.log(item); // 1, 2
数组转set (用于数组去重)
示例:
let mySet = new Set([1,2,2,3]); //Set [ 1 , 2, 3]
set转数组
示例:
let mySet = new Set([1,2,2,3]); //Set [ 1 , 2, 3]
let myArr = Array.from(mySet ) //[ 1 , 2, 3]