1. 程式人生 > 實用技巧 >處理集合_建立Set

處理集合_建立Set

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>建立Set</title>
    <script src="../unitl/test.js"></script>
    <style>
        #results li.pass {color:green;}
        #results li.fail {color:red;}
    </style>


</head>

<body>


    <div id="firstElement"></div>
    <div id="secondElement"></div>
    <ul id="results"></ul>


</body>

<script>

    //Set 不能存在相同的元素,Set成員的值都是唯一的。
    const ninjas = new Set(["Kuma","Hattori","Yagyu","Hattori"]);


    //丟棄重複項
    assert(ninjas.has("Hattori"),"Hattori is our set");
    assert(ninjas.size ===3,"There are only three ninjas in our set !");


    //可以向集合中新增不存在的元素
    assert(!ninjas.has("Yoshi"),"Yoshi is not in yet..");
    ninjas.add("Yoshi");
    assert(ninjas.has("Yoshi","Yoshi is added"));
    assert(ninjas.size ===4, "There are four ninjas in our set");


    //向集合中新增存在的元素將補齊任何作用。
    assert(ninjas.has("Kuma"),"Kuma is already added");
    ninjas.add("Kuma");
    assert(ninjas.size === 4,"Adding Kuma again has no effect");

    //通過for...of 迴圈對集合進行遍歷。
    for(let ninja of ninjas) {

        assert(ninja !== null,ninja);

    }
</script>
</html>

//使用內建建構函式建立Set,如果不傳入任何引數,將建立一個空Set。可以傳入字串:

      new Set(["Kuma","Hattori","Yagyu","Hattori"]);

Set成員的值都是唯一的,最重要的作用是避免儲存多個相同的物件。在本例子中,檢視新增兩次"Hattori",但是隻成功新增一次。
Set具有多個可訪問的方法。例如:has方法驗證Set中是否存在元素:

      ninjas.has("Hattori")

add 方法用於新增唯一成員:

     ninjas.add("Yoshi")

如果你想知道Set中具有幾個元素,可以使用size屬性。與Map和陣列類似,Set也是集合,因此可以使用for-of迴圈進行遍歷。