let s = newSet([1, 2, 3, 2]) s.add('apple') console.log(s) // Set(4) {1, 2, 3, "apple"}
add() 方法支持链式操作:
1 2 3
let s = newSet([1, 2, 3, 2]) s.add('apple').add('mango') console.log(s) // Set(4) {1, 2, 3, "apple", "mango"}
2)delete()
1 2 3
let s = newSet([1, 2, 3]) s.delete(2) console.log(s) // Set(2) {1, 3}
3)clear()
用于清空 Set。
1 2 3
let s = newSet([1, 2, 3]) s.clear() console.log(s) // Set(0) {}
4)has()
用于判断当前 Set 中是否包含某个数据。
1 2 3
let s = newSet([1, 2, 'apple']) console.log(s.has('apple')) // true console.log(s.has('mango')) // false
2、Set 的属性
1)size
数组使用length属性保存数组长度,Set 使用size属性保存数组长度。
1 2
let s = newSet([1, 2, 'apple']) console.log(s.size) // 3
3、Set 的遍历
1)forEach
1 2
let s = newSet([1, 2, 'apple']) s.forEach(item =>console.log(item)) // 1 2 apple
2)for of 与 values()、keys()、entris()
1 2 3 4 5 6 7 8 9 10 11 12 13
let s = newSet([1, 2, 'apple']) for (let item of s) { console.log(item) // 1 2 apple } for (let item of s.keys()) { console.log(item) // 1 2 apple } for (let item of s.values()) { console.log(item) // 1 2 apple } for (let item of s.entries()) { console.log(item[0], item[1]) // 1 1 2 2 apple apple }
Set 的 key 与 value 是相同的。
4、Set 转换成 Array
数组转换成 Set 非常简单,把数组作为 Set 的参数就行。将 Set 转换成数组,我们可以使用...或者Array.from()。使用 Array.prototype.slice.call() 无效,只会得到一个空数组。
1 2 3
let s = newSet([1, 2, 3]) let arr1 = [...s] let arr2 = Array.from(s)