一、創建Set對象實例
Set 對象允許你存儲任何類型的唯一值,無論是原始值或者是對象引用
1.構造函數
語法:new Set([iterable])
參數:
iterable 如果傳遞一個可迭代對象,它的所有元素將被添加到新的 Set中;如果不指定此參數或其值爲null,則新的 Set爲空
let arr = [1,2,2,3];
let mySet = new Set(arr);
console.log(mySet); // Set(3) {1, 2, 3}
二、Set實例屬性
1.size屬性將會返回Set對象中元素的個數
let mySet = new Set();
mySet.add(1);
mySet.add(5);
mySet.add("some text");
console.log(mySet.size); // 3
三、Set實例方法
1.add() 方法用來向一個 Set 對象的末尾添加一個指定的值
語法:mySet.add(value)
參數:
value 必需,需要添加到 Set 對象的元素的值
let mySet = new Set();
mySet.add(1);
mySet.add(5).add("some text"); // 可以鏈式調用
console.log(mySet); // Set [1, 5, "some text"]
2.delete() 方法可以從一個 Set 對象中刪除指定的元素
語法:mySet.delete(value)
參數:
value 將要刪除的元素返回值:成功刪除返回 true,否則返回 false
let mySet = new Set();
mySet.add("foo");
mySet.delete("foo"); // 返回 true,刪除成功
console.log(mySet.size); // 0
3.clear() 方法用來清空一個 Set 對象中的所有元素
語法:mySet.clear()
let mySet = new Set();
mySet.add(1);
mySet.add("foo");
console.log(mySet.size); // 2
mySet.clear();
console.log(mySet.size); // 0
4.has() 方法返回一個布爾值來指示對應的值value是否存在Set對象中
語法:mySet.has(value)
參數:
value 必須,是否存在於Set的值返回值:如果指定的值(value)存在於Set對象當中,返回true; 否則返回 false
let mySet = new Set();
mySet.add("foo");
console.log(mySet.has("foo")); // true
console.log(mySet.has("bar")); // false
5.entries()
語法:mySet.entries()
返回值:一個新的包含 [value, value] 形式的數組迭代器對象,value 是給定集合中的每個元素,迭代器 對象元素的順序即集合對象中元素插入的順序
let mySet = new Set();
mySet.add("foobar");
mySet.add(1);
mySet.add("baz");
let setIter = mySet.entries();
console.log(setIter.next().value); // ["foobar", "foobar"]
console.log(setIter.next().value); // [1, 1]
console.log(setIter.next().value); // ["baz", "baz"]
6.values()
語法:mySet.values() 或者 mySet.keys()
返回值:返回一個 Iterator 對象,這個對象以插入Set 對象的順序包含了原 Set 對象裏的每個元素
let mySet = new Set();
mySet.add("foo");
mySet.add("bar");
mySet.add("baz");
let setIter = mySet.values();
console.log(setIter.next().value); // "foo"
console.log(setIter.next().value); // "bar"
console.log(setIter.next().value); // "baz"
7.forEach()
語法:mySet.forEach(callback[, thisArg])
參數:
callback 每個元素都會執行的函數thisArg 當執行callback函數時候,可以當作this來使用
let mySet = new Set(["foo","bar",undefined]);
mySet.forEach((value1,value2,set) => {
console.log("key =",value1,",value =",value2); // key = foo ,value = foo
});