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

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

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

JavaScript生成二維數(shù)組

方法一 

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

但注意,當(dāng)一個(gè)對(duì)象被傳遞給fill方法時(shí),填充數(shù)組的是這個(gè)對(duì)象的引用。

即二維數(shù)組的第一個(gè)維度中的每一個(gè)數(shù)組都指向同一個(gè)引用,如果向第一個(gè)維度中的任一元素執(zhí)行push,則每一個(gè)二維中都會(huì)多一個(gè)元素。

方法二

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

方法三

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

測(cè)試代碼:

    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ù)組 ,但我們可以通過(guò)一些方法實(shí)現(xiàn)矩陣以及多維數(shù)組

其中普通的創(chuàng)建方法并不會(huì)出現(xiàn)什么問(wè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]

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

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

遇到問(wèn)題的方法:

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

控制臺(tái)打印arr1

請(qǐng)?zhí)砑訄D片描述

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

請(qǐng)?zhí)砑訄D片描述

原因

請(qǐng)?zhí)砑訄D片描述

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

var a = new Array();

for(var i=0;i<5;i++){        //一維長(zhǎng)度為5

    a[i] = new Array();

    for(var j=0;j<5;j++){    //二維長(zhǎng)度為5

    	a[i][j] = 0;
   }

}

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    bootstrap table列和表頭對(duì)不齊的解決方法

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

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

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

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

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

    跟我學(xué)習(xí)javascript的定時(shí)器

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

最新評(píng)論