什么是Set()
Set對(duì)象是值的集合,你可以按照插入的順序迭代它的元素。 Set中的元素只會(huì)出現(xiàn)一次,即 Set 中的元素是唯一的。我們可以利用這一唯一特性進(jìn)行數(shù)組的去重工作。
元素屬性
Set.prototype.size
返回 Set 對(duì)象中的值的個(gè)數(shù)
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.add(2) //Set [ 1, 2 ]
mySet.size // 2
添加元素
Set.prototype.add(value)
在Set對(duì)象尾部添加一個(gè)元素。返回該Set對(duì)象。
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.add(2) //Set [ 1, 2 ]
刪除所有元素
Set.prototype.clear()
移除Set對(duì)象內(nèi)的所有元素。
示例:
let mySet = new Set();
mySet.clear()
刪除某個(gè)元素
Set.prototype.delete(value)
移除Set中與這個(gè)值相等的元素。
示例:
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)
返回一個(gè)布爾值,表示該值在Set是否存在。
示例:
let mySet = new Set();
mySet.add(1) //Set [ 1 ]
mySet.has(1) // true,1在set中存在
遍歷元素 forEach()
Set.prototype.forEach(callbackFn[, thisArg])
按照插入順序,為Set對(duì)象中的每一個(gè)值調(diào)用一次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()方法相同,返回一個(gè)新的迭代器對(duì)象,該對(duì)象包含Set對(duì)象中的按插入順序排列的所有元素的值。
示例:
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()
返回一個(gè)新的迭代器對(duì)象,該對(duì)象包含Set對(duì)象中的按插入順序排列的所有元素的值。
示例:
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
數(shù)組轉(zhuǎn)set (用于數(shù)組去重)
示例:
let mySet = new Set([1,2,2,3]); //Set [ 1 , 2, 3]
set轉(zhuǎn)數(shù)組
示例:
let mySet = new Set([1,2,2,3]); //Set [ 1 , 2, 3]
let myArr = Array.from(mySet ) //[ 1 , 2, 3]