欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript如何生成二維數(shù)組

 更新時間:2023年03月24日 10:20:28   作者:shangdong2023  
這篇文章主要介紹了JavaScript如何生成二維數(shù)組問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

JavaScript生成二維數(shù)組

方法一 

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

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

即二維數(shù)組的第一個維度中的每一個數(shù)組都指向同一個引用,如果向第一個維度中的任一元素執(zhí)行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中創(chuàng)建二維數(shù)組的坑

JS中二維數(shù)組的創(chuàng)建

首先JavaScript只支持 一維數(shù)組 ,但我們可以通過一些方法實現(xiàn)矩陣以及多維數(shù)組

其中普通的創(chuàng)建方法并不會出現(xiàn)什么問題:

(1) 利用一維數(shù)組嵌套一維數(shù)組的方式創(chuàng)建二維數(shù)組:

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

然后使用一個 雙層for循環(huán) 就可以迭代這個二維數(shù)組中的元素

所以用這種方法創(chuàng)建多維數(shù)組,不管有幾個維度,都可以通過嵌套循環(huán)來遍歷

遇到問題的方法:

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

控制臺打印arr1

請?zhí)砑訄D片描述

這時候,若你想設置,arr[0][0] = 1,你會發(fā)現(xiàn)二維數(shù)組所有子數(shù)組的第一項都被改為1

請?zhí)砑訄D片描述

原因

請?zhí)砑訄D片描述

綜上,還是選擇老實一點的創(chuàng)建方法:

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

}

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • JS中多層次排序算法的實現(xiàn)代碼

    JS中多層次排序算法的實現(xiàn)代碼

    這篇文章主要給大家介紹了關于JS中多層次排序算法的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 淺談JS繼承_借用構造函數(shù) & 組合式繼承

    淺談JS繼承_借用構造函數(shù) & 組合式繼承

    下面小編就為大家?guī)硪黄獪\談JS繼承_借用構造函數(shù) & 組合式繼承。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 淺談JavaScript的全局變量與局部變量

    淺談JavaScript的全局變量與局部變量

    下面小編就為大家?guī)硪黄獪\談JavaScript的全局變量與局部變量。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • JS全局變量和局部變量最新解析

    JS全局變量和局部變量最新解析

    這篇文章主要介紹了JS全局變量和局部變量最新解析的相關知識,本文給給大家補充js刪除局部變量的代碼,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-06-06
  • tangram.js庫實現(xiàn)js類的方式實例分析

    tangram.js庫實現(xiàn)js類的方式實例分析

    這篇文章主要介紹了tangram.js庫實現(xiàn)js類的方式,結合實例形式分析了tangram.js庫實現(xiàn)類的創(chuàng)建、繼承等相關操作技巧,需要的朋友可以參考下
    2018-01-01
  • 原生javascript獲取元素樣式屬性值的方法

    原生javascript獲取元素樣式屬性值的方法

    實際應用中, 獲取元素樣式在實際應用中一定常用到, 若是純粹html中, 直接elem.style.attr就可獲取, 但更多的時候我們是要從Css中獲取元素的最終樣式屬性.
    2010-12-12
  • bootstrap table列和表頭對不齊的解決方法

    bootstrap table列和表頭對不齊的解決方法

    這篇文章主要為大家詳細介紹了bootstrap table列和表頭對不齊的解決方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 原生JS實現(xiàn)網(wǎng)頁手機音樂播放器 歌詞同步播放的示例

    原生JS實現(xiàn)網(wǎng)頁手機音樂播放器 歌詞同步播放的示例

    下面小編就為大家分享一篇原生JS實現(xiàn)網(wǎng)頁手機音樂播放器 歌詞同步播放的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • javascript(js) join函數(shù)使用方法介紹

    javascript(js) join函數(shù)使用方法介紹

    javascript(js) join函數(shù)使用方法介紹...
    2007-11-11
  • 跟我學習javascript的定時器

    跟我學習javascript的定時器

    跟我學習javascript的定時器,告訴大家具體的使用方法,并向大家提出了一個消息要求,制作一個定時器,有沒有朋友感興趣,挑戰(zhàn)一下
    2015-11-11

最新評論