<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## Set和Map數據結構 > 1.Set 2.Map 3.for of遍歷 ### Set ES6 提供了新的數據結構 Set。它類似于數組,但是成員的值都是唯一的,沒有重復值。 Set 本身是一個構造函數,用來生成 Set 數據結構。 ~~~ const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 ~~~ ~~~ // 例一 const set = new Set([1, 2, 3, 4, 4]); [...set] // [1, 2, 3, 4] // 例二 const items = new Set([1, 2, 3, 4, 5, 5, 5, 5]); items.size // 5 ~~~ ~~~ // 去除數組的重復成員 [...new Set(array)] ~~~ ~~~ let set = new Set(); let a = NaN; let b = NaN; set.add(a); set.add(b); set // Set {NaN} ~~~ **Set 結構的實例有以下屬性** Set.prototype.constructor:構造函數,默認就是Set函數。 Set.prototype.size:返回Set實例的成員總數 **Set 實例的屬性和方法** add(value):添加某個值,返回 Set 結構本身。 delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功。 has(value):返回一個布爾值,表示該值是否為Set的成員。 clear():清除所有成員,沒有返回值。 **Set 結構的實例有四個遍歷方法,可以用于遍歷成員** keys():返回鍵名的遍歷器 values():返回鍵值的遍歷器 entries():返回鍵值對的遍歷器 forEach():使用回調函數遍歷每個成員 ### Map ~~~ const m = new Map(); const o = {p: 'Hello World'}; m.set(o, 'content') m.get(o) // "content" m.has(o) // true m.delete(o) // true m.has(o) // false ~~~ ~~~ let map = new Map(); map.set(-0, 123); map.get(+0) // 123 map.set(true, 1); map.set('true', 2); map.get(true) // 1 map.set(undefined, 3); map.set(null, 4); map.get(undefined) // 3 map.set(NaN, 123); map.get(NaN) // 123 ~~~ ### for of遍歷 我們已經知道的遍歷方法 ~~~ var arr = ['a','b','c']; for(var i=0;i<arr.length;i++){ console.log(arr[i]) } // abc for(var j in arr){ console.log(j) } // 012 arr.forEach((m)=>{ console.log(m) }) // abc ~~~ ~~~ for(let k of arr){ console.log(k) } // abc ~~~ > 具備iterator接口的對象都是可以使用for of來進行遍歷的 遍歷器(Iterator)是一種接口,為各種不同的數據結構提供統一的訪問機制。任何數據結構只要部署Iterator接口,就可以完成遍歷操作(即依次處理該數據結構的所有成員) Iterator的作用有三個:一是為各種數據結構,提供一個統一的、簡便的訪問接口;二是使得數據結構的成員能夠按某種次序排列;三是ES6創造了一種新的遍歷命令for...of循環,Iterator接口主要供for...of消費 有三類數據結構原生具備Iterator接口:數組、某些類似數組的對象、Set和Map結構# ### 課后習題 1.下面的代碼運行后的結果是什么? ~~~ let set = new Set(); set.add({}); set.add({}); console.log(set.size) ~~~ ~~~ let map = new Map(); let a = {}; map.set(a,'hello'); console.log(map.has({})); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看