JavaScript基礎對象---Set

一、創建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
    });

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章