中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript怎么生成二維數組

發布時間:2023-03-25 14:32:08 來源:億速云 閱讀:253 作者:iii 欄目:開發技術

今天小編給大家分享一下JavaScript怎么生成二維數組的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    JavaScript生成二維數組

    方法一 

    new Array(x).fill(new Array(y).fill(0))

    但注意,當一個對象被傳遞給fill方法時,填充數組的是這個對象的引用。

    即二維數組的第一個維度中的每一個數組都指向同一個引用,如果向第一個維度中的任一元素執行push,則每一個二維中都會多一個元素。

    方法二

    new Array(x).fill().map(() => new Array(y).fill(0))

    方法三

    Array.from(new Array(x), () => new Array(y).fill(0))

    測試代碼:

        const arr1 = new Array(2).fill(new Array(3).fill(0))
        // arr1: [ [ 0, 0, 0 ], [ 0, 0, 0 ] ]
        arr1[0].push(9)
        // arr1: [ [ 0, 0, 0, 9 ], [ 0, 0, 0, 9 ] ] 
    
        const arr2 = new Array(2).fill().map(() => new Array(3).fill(0))
        // arr2: [ [ 0, 0, 0 ], [ 0, 0, 0 ] ]
        arr2[0].push(9)
        // arr2: [ [ 0, 0, 0, 9 ], [ 0, 0, 0 ] ] 
    
        const arr3 = Array.from(new Array(2), () => new Array(3).fill(0))
        // arr3: [ [ 0, 0, 0 ], [ 0, 0, 0 ] ]
        arr3[0].push(9)
        // arr3: [ [ 0, 0, 0, 9 ], [ 0, 0, 0 ] ]

    JS中創建二維數組的坑

    JS中二維數組的創建

    首先JavaScript只支持 一維數組 ,但我們可以通過一些方法實現矩陣以及多維數組

    其中普通的創建方法并不會出現什么問題:

    (1) 利用一維數組嵌套一維數組的方式創建二維數組:

    let arr = [] ;
    a[0] = [1,2,3,4,5,6];
    a[1] = [10,20,30,40,50,60]

    然后使用一個 雙層for循環 就可以迭代這個二維數組中的元素

    所以用這種方法創建多維數組,不管有幾個維度,都可以通過嵌套循環來遍歷

    遇到問題的方法:

      let arr1= new Array(10).fill(new Array(10).fill(0))

    控制臺打印arr1

    JavaScript怎么生成二維數組

    這時候,若你想設置,arr[0][0] = 1,你會發現二維數組所有子數組的第一項都被改為1

    JavaScript怎么生成二維數組

    原因

    JavaScript怎么生成二維數組

    綜上,還是選擇老實一點的創建方法:

    var a = new Array();
    
    for(var i=0;i<5;i++){        //一維長度為5
    
        a[i] = new Array();
    
        for(var j=0;j<5;j++){    //二維長度為5
    
        	a[i][j] = 0;
       }
    
    }

    以上就是“JavaScript怎么生成二維數組”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    治多县| 平昌县| 罗定市| 长寿区| 横峰县| 岐山县| 鄢陵县| 华安县| 贺兰县| 吕梁市| 石嘴山市| 双柏县| 绥中县| 宜章县| 武乡县| 益阳市| 来宾市| 湖南省| 渝北区| 蒲江县| 越西县| 黄冈市| 广水市| 卢湾区| 荃湾区| 乐都县| 改则县| 宁化县| 石景山区| 什邡市| 高尔夫| 盐津县| 阜康市| 西华县| 陕西省| 安徽省| 洪洞县| 洪雅县| 八宿县| 汤原县| 含山县|