最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

JavaScript生成二維數(shù)組

方法一 

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

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

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

方法二

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ù)組 ,但我們可以通過一些方法實(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]

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

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

遇到問題的方法:

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

控制臺打印arr1

請?zhí)砑訄D片描述

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

請?zhí)砑訄D片描述

原因

請?zhí)砑訄D片描述

綜上,還是選擇老實(shí)一點(diǎn)的創(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;
   }

}

總結(jié)

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

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)圖片壓縮功能

    微信小程序?qū)崿F(xiàn)圖片壓縮功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)圖片壓縮功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • JavaScript基于Dom操作實(shí)現(xiàn)查找、修改HTML元素的內(nèi)容及屬性的方法

    JavaScript基于Dom操作實(shí)現(xiàn)查找、修改HTML元素的內(nèi)容及屬性的方法

    這篇文章主要介紹了JavaScript基于Dom操作實(shí)現(xiàn)查找、修改HTML元素的內(nèi)容及屬性的方法,涉及javascript dom模型及事件響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • ES6中如何使用Set和WeakSet

    ES6中如何使用Set和WeakSet

    這篇文章主要為大家詳細(xì)介紹了ES6中如何使用Set和WeakSet的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 微信小程序?qū)崿F(xiàn)圖片翻轉(zhuǎn)效果的實(shí)例代碼

    微信小程序?qū)崿F(xiàn)圖片翻轉(zhuǎn)效果的實(shí)例代碼

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)圖片翻轉(zhuǎn)效果的實(shí)例代碼,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 教你如何通過JavaScript讀取元素的樣式

    教你如何通過JavaScript讀取元素的樣式

    這篇文章主要給大家介紹了關(guān)于如何通過JavaScript讀取元素的樣式,文中通過實(shí)例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 使用cypress編寫第一個(gè)測試用例

    使用cypress編寫第一個(gè)測試用例

    這篇文章主要為大家介紹了使用cypress編寫第一個(gè)測試用例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 微信小程序?qū)崿F(xiàn)手機(jī)獲取驗(yàn)證碼倒計(jì)時(shí)60s

    微信小程序?qū)崿F(xiàn)手機(jī)獲取驗(yàn)證碼倒計(jì)時(shí)60s

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)手機(jī)獲取驗(yàn)證碼后倒計(jì)時(shí)60s,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 樹結(jié)構(gòu)之JavaScript

    樹結(jié)構(gòu)之JavaScript

    本文主要介紹了JavaScript樹結(jié)構(gòu)的相關(guān)知識。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • IE8 chrome中table隔行換色解決辦法

    IE8 chrome中table隔行換色解決辦法

    今天把項(xiàng)目生成好后,發(fā)布到萬維網(wǎng)上進(jìn)行測試,發(fā)現(xiàn)table的隔行換色在IE8,chorem中不能正常顯示。找了許多資料,CSS看樣是不能解決,只能用JS來控制了
    2010-07-07
  • 原生js開發(fā)的日歷插件

    原生js開發(fā)的日歷插件

    本文主要分享了原生js開發(fā)的日歷插件的示例代碼。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02

最新評論

甘德县| 原阳县| 清远市| 龙江县| 工布江达县| 东乌珠穆沁旗| 信宜市| 永川市| 新丰县| 锡林浩特市| 曲松县| 威海市| 桂阳县| 富宁县| 吴堡县| 乌鲁木齐县| 四平市| 开封市| 元江| 嵊州市| 安远县| 托克托县| 桦甸市| 清丰县| 巢湖市| 南开区| 甘孜县| 青阳县| 阳泉市| 台北市| 阳东县| 承德市| 天峻县| 临沭县| 德安县| 攀枝花市| 西盟| 青冈县| 清镇市| 乳山市| 文成县|