什么是Set()
Set對象是值的集合,你可以按照插入的順序迭代它的元素。 Set中的元素只會出現(xiàn)一次,即 Set 中的元素是唯一的。我們可以利用這一唯一特性進行數(shù)組的去重工作。
元素屬性
Set.prototype.size
返回 Set 對象中的值的個數(shù)
示例:
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對象內(nèi)的所有元素。
示例:
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對象中的每一個值調(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()方法相同,返回一個新的迭代器對象,該對象包含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
數(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]