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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                >[success] # 30s Array -- 創建數組篇(一) ~~~ 1.本章節代碼通過整理30s 項目中數組篇章知識點,對涉及創建新數組的代碼片段整理 ~~~ >[info] ## 一直一個范圍生成的數組每一項間隔和開始項值相等 ~~~ 1.從給定的正整數開始,直至指定的限制一個限制整數生成數組,舉個例子給定項5,限制項25 生成的 結果[5,10,15,20,25] ~~~ >[danger] ##### 代碼實現 [先了解Array.from](http://www.hmoore.net/cyyspring/more/1328936) [原文來源](https://www.30secondsofcode.org/js/s/arithmetic-progression) ~~~ const arithmeticProgression = (n,lim)=>Array.from({length:Math.ceil(lim/n)},(v,i)=>(i+1)*n) console.log(arithmeticProgression(5,25)) // [ 5, 10, 15, 20, 25 ] ~~~ >[info] ## 通過回調函數動態作為參數生成數組 ~~~ 1.使用給定的函數生成具有給定數量的項的數組 ~~~ [原文鏈接](https://www.30secondsofcode.org/js/s/generate-items) >[danger] ##### 30s ~~~ const {log} =console const generateItems = (n,fn)=>Array.from({length:n},(_,i)=>fn(i)) log(generateItems(10, Math.random)) ~~~ >[info] ## 生成二維數組 ~~~ 1.生成二維數組 ~~~ [原文鏈接](https://www.30secondsofcode.org/js/s/initialize2-d-array) >[danger] ##### 30s ~~~ const {log} =console const initialize2DArray = (w, h, val = null) => Array.from({ length: h }).map(() => Array.from({ length: w }).fill(val)); log(initialize2DArray(3, 2)) // [ [ null, null, null ], [ null, null, null ] ] ~~~ >[info] ## 根據給出數組首尾項和每項間隔生成一個等差數組 ~~~ 1.初始化一個范圍數組,例如想生成一個0-9 每個值間隔為2的數組[0, 2, 4, 6, 8] ~~~ [原文鏈接](https://www.30secondsofcode.org/js/s/initialize-array-with-range) >[danger] ##### 30s ~~~ const {log} =console const initializeArrayWithRange = (end, start = 0, step = 1) => Array.from( { length: Math.ceil((end - start + 1) / step) }, (_, i) => i * step + start ); initializeArrayWithRange(5); // [0, 1, 2, 3, 4, 5] initializeArrayWithRange(7, 3); // [3, 4, 5, 6, 7] initializeArrayWithRange(9, 0, 2); // [0, 2, 4, 6, 8] ~~~ >[info] ## 用指定的值初始化并填充一個數組 ~~~ 1.用指定的值初始化并填充一個數組 ~~~ [原文鏈接](https://www.30secondsofcode.org/js/s/initialize-array-with-values) >[danger] ##### 30s ~~~ const {log} =console const initializeArrayWithValues = (n, val = 0) => Array.from({ length: n }).fill(val); log(initializeArrayWithValues(5, 3)) // [ 3, 3, 3, 3, 3 ] ~~~ >[info] ## 根據給出數組首尾項和每項間隔生成一個等差數組 倒序 ~~~ 1.初始化一個范圍數組,例如想生成一個0-9 每個值間隔為2的數組[8, 6, 4, 2, 0] ~~~ [原鏈接](https://www.30secondsofcode.org/js/s/initialize-array-with-range-right) >[danger] ##### 30s ~~~ const {log} =console const initializeArrayWithRangeRight = (end, start = 0, step = 1) => Array.from({ length: Math.ceil((end + 1 - start) / step) }).map( (v, i, arr) => (arr.length - i - 1) * step + start ); log(initializeArrayWithRangeRight(7, 3)) // [ 7, 6, 5, 4, 3 ] ~~~ >[info] ## 創建一個N維數組并且填充 ~~~ 1.現在有個需求已知一個給定值,想用這個值填充自動生成的多維數組,舉個例子,已知填充數字為'1' 一共需要兩層,每層三項,因此生成的數組為'[ [ 1, 1, 1 ], [ 1, 1, 1 ], [ 1, 1, 1 ] ]' ~~~ [原鏈接]([https://www.30secondsofcode.org/js/s/initialize-nd-array](https://www.30secondsofcode.org/js/s/initialize-nd-array)) >[danger] ##### 30s ~~~ 1.這種嵌套的邏輯,首先明確一點事遞歸,然后需要已知的參數,最終項的內容,以及每一層需要有 多少項 2.生成指定長度的數組,這里優先考慮'Array.from'api,每一項的內容參考'map' api ~~~ ~~~ const initializeNDArray = (val, ...args) => args.length === 0 ? val : Array.from({ length: args[0] }).map(() => initializeNDArray(val, ...args.slice(1)) ); log(initializeNDArray(1,3,3)) // [ [ 1, 1, 1 ], [ 1, 1, 1 ], [ 1, 1, 1 ] ] ~~~ >[info] ## 迭代器函數和初始種子值構建數組 ~~~ 1.下面代碼是開闊思路,可以通過Array.from 實現類似效果 ~~~ [unfold](https://www.30secondsofcode.org/js/s/unfold) ~~~ const unfold = (fn, seed) => { let result = [], val = [null, seed]; while ((val = fn(val[1]))) result.push(val[0]); return result; }; ~~~ 個需求相加 ~~~
                  <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>

                              哎呀哎呀视频在线观看