<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # iterable 遍歷`Array`可以采用下標循環,遍歷`Map`和`Set`就無法使用下標。為了統一集合類型,ES6標準引入了新的`iterable`類型,`Array`、`Map`和`Set`都屬于`iterable`類型。 具有`iterable`類型的集合可以通過新的`for ... of`循環來遍歷。 `for ... of`循環是ES6引入的新的語法,請測試你的瀏覽器是否支持: ``` 'use strict'; var a = [1, 2, 3]; for (var x of a) { } alert('你的瀏覽器支持for ... of'); // 請直接運行測試 ``` 用`for ... of`循環遍歷集合,用法如下: ``` var a = ['A', 'B', 'C']; var s = new Set(['A', 'B', 'C']); var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]); for (var x of a) { // 遍歷Array alert(x); } for (var x of s) { // 遍歷Set alert(x); } for (var x of m) { // 遍歷Map alert(x[0] + '=' + x[1]); } ``` 你可能會有疑問,`for ... of`循環和`for ... in`循環有何區別? `for ... in`循環由于歷史遺留問題,它遍歷的實際上是對象的屬性名稱。一個`Array`數組實際上也是一個對象,它的每個元素的索引被視為一個屬性。 當我們手動給`Array`對象添加了額外的屬性后,`for ... in`循環將帶來意想不到的意外效果: ``` var a = ['A', 'B', 'C']; a.name = 'Hello'; for (var x in a) { alert(x); // '0', '1', '2', 'name' } ``` `for ... in`循環將把`name`包括在內,但`Array`的`length`屬性卻不包括在內。 `for ... of`循環則完全修復了這些問題,它只循環集合本身的元素: ``` var a = ['A', 'B', 'C']; a.name = 'Hello'; for (var x of a) { alert(x); 'A', 'B', 'C' } ``` 這就是為什么要引入新的`for ... of`循環。 然而,更好的方式是直接使用`iterable`內置的`forEach`方法,它接收一個函數,每次迭代就自動回調該函數。以`Array`為例: ``` var a = ['A', 'B', 'C']; a.forEach(function (element, index, array) { // element: 指向當前元素的值 // index: 指向當前索引 // array: 指向Array對象本身 alert(element); }); ``` _注意_,`forEach()`方法是ES5.1標準引入的,你需要測試瀏覽器是否支持。 `Set`與`Array`類似,但`Set`沒有索引,因此回調函數的前兩個參數都是元素本身: ``` var s = new Set(['A', 'B', 'C']); s.forEach(function (element, sameElement, set) { alert(element); }); ``` `Map`的回調函數參數依次為`value`、`key`和`map`本身: ``` var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]); m.forEach(function (value, key, map) { alert(value); }); ``` 如果對某些參數不感興趣,由于JavaScript的函數調用不要求參數必須一致,因此可以忽略它們。例如,只需要獲得`Array`的`element`: ``` var a = ['A', 'B', 'C']; a.forEach(function (element) { alert(element); }); ```
                  <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>

                              哎呀哎呀视频在线观看