前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js创建二维数组

js创建二维数组

作者头像
蓓蕾心晴
发布2022-09-24 14:53:16
4.2K0
发布2022-09-24 14:53:16
举报
文章被收录于专栏:前端小叙前端小叙

js 创建二维数组的方法:

方法一:

直接设置

代码语言:javascript
复制
let arr = [
    [1, 2],
    [3, 4],
    [5, 6],
];
代码语言:javascript
复制
let arr = [] ;
arr[0] = [1,2,3,4,5,6];
arr[1] = [10,20,30,40,50,60]

方法二:

 fill + 一个 for 循环

代码语言:javascript
复制
let arr= new Array(10).fill(0)
for(let i=0;i<arr.length;i++){
    arr6[i]=new Array(5).fill(1)
}

两个 for 循环

代码语言:javascript
复制
var arr = new Array();
for(var i=0;i<5;i++){        //一维长度为5
    arr[i] = new Array();
    for(var j=0;j<5;j++){    //二维长度为5
        arr[i][j] = 0;
   }
}

方法三:

Array.from + fill

代码语言:javascript
复制
const arr = Array.from(Array(2), () => new Array(4).fill(1));

fill + map

代码语言:javascript
复制
const arr = Array(3).fill(0).map(x => Array(3).fill(0))

注意:

使用非for循环直接使用fill 创建二维数组,必须先给一维数组赋初始值,且为基本类型,再赋二维数组,如果直接给 fill 赋值为由一个数组,会导致创建的二维数组不同行之间的同一列指向同一片数据,一改全改。

原因在 fill 官方文档里找到一句话:当一个对象被传递给 fill 方法的时候,填充数组的是这个对象的引用。

如:

代码语言:javascript
复制
let arr = new Array(10).fill(new Array(10).fill(0))

执行:

代码语言:javascript
复制
arr[0][0]=1

参考链接:https://www.jb51.net/article/229469.htm

https://www.cnblogs.com/ZhYQ-Note/articles/15878939.html

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/fill

https://zhuanlan.zhihu.com/p/435742453

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档