js一行代码创建二维数组
原文地址:https://blog.csdn.net/asd0356/article/details/113403202
文章目录
前言
正文
结语
前言
使用js创建二维数组的方式有很多,最经典的莫过于使用for循环创建,相信大家都会此方法。下面我使用js原生API一行代码创建二维数组。
正文
Talk is cheap,show you my code:
const arr1 = Array(3).fill(0).map(x => Array(3).fill(0));
1
此代码应该也很好理解,初始化一个行列都为3且数值都为0的二维数组。
看完代码肯定会有人有疑问,此创建方式总感觉有些复杂,为何不用下面更简单的方式来创建:
const arr1 = Array(3).fill(Array(3).fill(0));
1
在控制台输出结果:
感觉确实也都是二维数组,那第二种方式岂不更简便?
但是事实真的是这样吗,真相只有一个,一行代码辨真假:
arr1[0][0] = 1;
arr2[0][0] = 1;
1
2
此时我们再打印出结果:
惊奇的发现方式二所创建的数组“牵一发而动全身”,感觉就是一个假的二维数组!
为什么会产生这种现象?问题十有八九就出在fill此API上,查看官方文档:
果不其然,害,果真是牵一发而动全身。
结语
想简便很好,但也要能满足需求,所以,既然API不满足功能需要那么我们只能退而求其次使用第一种方式创建二维数组。(或者,我们自己造一个可以满足需要的fill函数,然后。。。)
————————————————
版权声明:本文为CSDN博主「奇喑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/asd0356/article/details/113403202
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!