ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

js创建二维数组

2022-09-01 01:03:18  阅读:220  来源: 互联网

标签:arr js 二维 let 数组 new Array fill


js 创建二维数组的方法:

方法一:

直接设置

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

方法二:

 fill + 一个 for 循环

let arr= new Array(10).fill(0)
for(let i=0;i<arr.length;i++){
    arr6[i]=new Array(5).fill(1)
}

两个 for 循环

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

const arr = Array.from(Array(2), () => new Array(4).fill(1));

fill + map

const arr = Array(3).fill(0).map(x => Array(3).fill(0))

 

注意:

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

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

如:

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

执行:

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

标签:arr,js,二维,let,数组,new,Array,fill
来源: https://www.cnblogs.com/beileixinqing/p/16645080.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有