<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之旅 廣告
                # 映射 我們可以把映射看成是對JavaScript Object的一個擴展。在傳統的JavaScript Object中,當我們設置key, value對的時候,key只能是字符串。ES6對這個進行了擴展,形成了新的映射類型,映射類型的key, value對可以是任意對象。 ## 映射的初始化 在ES6中,可以通過如下2種對構造函數的調用來創建并初始化一個映射對象 * 不傳參數給構造函數,這將創建一個空的映射 ```javascript var sampleMap = new Map(); console.log(sampleMap.size); //will output 0 ``` * 傳一個數組給構造函數,這個傳入的數組的每個元素包含2個值,第一個將作為key, 另外一個作為value ```javascript var sampleMap = new Map([['key1', 'val1'], ['key2', 'val2']]); //will output 2, also sampleMap will have key key1 and key2 console.log(sampleMap.size);//will output 2 ``` ## 對映射對象的操作 和集合對象類似,你可以對映射對象執行如下的操作 * 增加成員,通過```set(key, val)```向映射對象增加成員 * 刪除成員,通過```delete(key)```從映射對象刪除成員 * 測試是否包含,通過```has(key)```測試是否包含某個key * 獲取成員,通過```get(key)```返回成員 * 清空成員,通過```clear()```操作清空整個映射對象 另外,映射對象和集合對象一樣,當你使用object作為key的時候,是根據key是否指向同樣的內存對象來判斷是否new一個key的。如果2個key的對象指向的是同一個內存對象,那么后面一個set將覆蓋前面一個set的內容。 ## 對映射對象的遍歷 對映射對象,你可以使用下面的任意一種方法進行合適的遍歷。 * ```keys()```調用,```keys()```調用將返回映射對象key的集合,接著你就可以使用```for...of```循環遍歷了。 ```javascript 'use strict'; var sampleMap = new Map(); sampleMap.set('key1', 'val1'); sampleMap.set('key2', 'val2'); for (let key of sampleMap.keys()){ console.log(key + '---' + sampleMap.get(key)); } ``` * ```values()```調用,```values()```調用返回映射對象value的集合,接著你就可以使用```for...of```循環遍歷了。 ```javascript 'use strict'; var sampleMap = new Map(); sampleMap.set('key1', 'val1'); sampleMap.set('key2', 'val2'); for (let val of sampleMap.values()){ console.log(val); } ``` * ```entries()```調用,```entries()```調用返回映射對象key和value的集合,接著你就可以使用```for...of```循環遍歷了。 ```javascript 'use strict'; var sampleMap = new Map(); sampleMap.set('key1', 'val1'); sampleMap.set('key2', 'val2'); for (let item of sampleMap.entries()){ console.log(item[0] + '---' + item[1]); } ``` *```forEach()```調用 ```javascript 'use strict'; var sampleMap = new Map(); sampleMap.set('key1', 'val1'); sampleMap.set('key2', 'val2'); sampleMap.forEach(function(value, key, map){ console.log(key + '---' + value); }); ``` # 弱映射 和弱集合一樣,弱映射的key不被垃圾回收所檢查,當key對應的對象被回收的時候,也自動從弱映射中被刪除。由于這個原因,弱映射和弱集合一樣無法進行遍歷,這能修改。
                  <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>

                              哎呀哎呀视频在线观看