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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >[success] # 創建數組 ~~~ 1.在es5中創建數組,有兩種方法一種是字面量的創建,一種是構造函數的創建, 在es6多了一種'Array.of()'方法 ~~~ >[danger] ##### es5 的創建數組 ~~~ 1.使用構造函數創建的問題是,如果傳入一個數值型的值,數組長度會變成該值, 如果傳入的是非數字 或者是多項內容,則會將這些內容變成數組的元素 ~~~ ~~~ const array = [1,2,3,4,5] // 構造函數創建 const array1 = new Array(1) const array2 = new Array('1') const array3 = new Array(1,2) const array4 = new Array(1,'1') console.log(array) // [1, 2, 3, 4, 5] console.log(array1) // [empty] 注釋:長度為1 內容空 console.log(array2) // ["1"] console.log(array3) // [1, 2] console.log(array4) // [1, "1"] ~~~ >[danger] ##### es6 -- Array.of ~~~ 1.不管你傳入啥最后都是改生成數組的元素,理解成構造函數的升級版本 ~~~ ~~~ const array = Array.of(1) console.log(array) // [1] ~~~ >[success] # 轉換數組 -- Array.from [mdn關于from](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from) ~~~ 1.Array.from() 可以通過以下方式來創建數組對象: 偽數組對象(擁有一個 length 屬性和若干索引屬性的任意對象) 可迭代對象(可以獲取對象中的元素,如 Map和 Set 等) 2.簡單粗暴的理解和 '[...Array ]'類似,但是Array.from() 可以接受回調因此可擴展性更高,并且 展開運算符對' {0:1,1:'1',length:2}'這種對象形式數組是無法解析的,但是對'arguments'這種偽數組 是可以轉換的 3.`Array.from(obj, mapFn, thisArg)`就相當于`Array.from(obj).map(mapFn, thisArg)` ~~~ >[danger] ##### 偽數組對象 * es5 將偽數組轉成數組(案例一) ~~~ function test() { console.log([].slice.call(arguments)) // ?[1, 2, 3, 4] console.log(Array.prototype.slice.call(arguments)) // ?[1, 2, 3, 4] } test(1,2,3,4) ~~~ * es5 將偽數組轉成數組(案例二) ~~~ var obj = {0:1,1:'1',length:2} console.log(Array.prototype.slice.call(obj)) // [1,"1"] ~~~ * es6 -- Array.from ~~~ var obj = {0:1,1:'1',length:2} console.log(Array.from(obj)) // [1,"1"] function test() { console.log(Array.from(arguments)) // ?[1, 2, 3, 4] console.log([...arguments]) // ?[1, 2, 3, 4] } test(1,2,3,4) ~~~ >[danger] ##### 可迭代對象 ~~~ 1.因此其他的可迭代對象都可以用Array.from生成一個新的數組, 例如'map' 和'set' ~~~ ~~~ function *test() { yield 1 yield 2 yield 3 } console.log(Array.from(test())) // [1,2,3] console.log([...test()]) // [1,2,3] let test1= { *[Symbol.iterator](){ yield 1 yield 2 yield 3 } } console.log(Array.from(test1)) // [1,2,3] console.log([...test1]) // [1,2,3] ~~~ >[danger] ##### Array.from 第二個參數回調函數 ~~~ Array.from([1, 2, 3], x => x + x); // x => x + x代表這是一個函數,只是省略了其他的定義,這是一種Lambda表達式的寫法 // 箭頭的意思表示從當前數組中取出一個值,然后自加,并將返回的結果添加到新數組中 // [2, 4, 6] //生成一個數字序列 //由于數組在每個位置上都以' undefined '進行初始化, //下面的' v '值為' undefined ' Array.from({length: 5}, (v, i) => i); // [0, 1, 2, 3, 4] ~~~ >[danger] ##### 對回調中的參數做解釋 ~~~ 1.通過下面案例可以看出來,回調的第一個參數是數組循環對應的項,第二個參數是對應循環的下角標 ,下面第二個案例可以發現因為不是一個理論上的純數組,此時認為你長度為5,每個內容都為'undefind' ~~~ ~~~ const test = Array.from(['a','b','c'],(v,i)=>{ /* a 0 b 1 c 2 */ console.log(v,i) return i }) console.log(test)// [ 0, 1, 2 ] const test1 = Array.from({length:3},(v,i)=>{ /* undefined 0 undefined 1 undefined 2 */ console.log(v,i) return i }) console.log(test1) // [ 0, 1, 2 ] ~~~
                  <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>

                              哎呀哎呀视频在线观看