JavaScript创建二维数组踩坑记录

这篇具有很好参考价值的文章主要介绍了JavaScript创建二维数组踩坑记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:创建一个m*n且元素值为0的二维数组

碎碎念

1、

今天刷Leetcode时,遇见一个这样的需求,机智如我,定然不会通过双重for循环来创建,于是,我写了这样一行代码
const dimensionalArray = new Array(m).fill(new Array(n).fill(0));
乍一看没有问题,但在修改数组里的值时,问题就暴露出来了
JavaScript创建二维数组踩坑记录
可以看到,我明明只打算修改一个数组元素,却变成了修改一列元素。不难联想到,这3个字数组指向的是同一个数组元素的地址;

2、
看来还得老老实实遍历数组,再为每个数组元素创建一个新数组,修改如下
const dimensionalArray = new Array(m).fill(0).map(() => new Array(n).fill(0))
再来验证一下
JavaScript创建二维数组踩坑记录
问题解决,这里要注意一点,new Array(m)只是生成一个长度为m的数组,但是数组里的元素是空的,所以要用fill()填充一个元素后再进行遍历
JavaScript创建二维数组踩坑记录
3、
除了用 new Array()生成数组,还可以用Array.from(),你知道吗,Array.from()中可以使用箭头函数哟 MDN-Array.from()
const dimensionalArray = Array.from({length:m},() => new Array(n).fill(0));
JavaScript创建二维数组踩坑记录
验证成功

总结

创建一个m*n且元素值为0的二维数组方法如下
方法1、
new Array(m).fill(0).map(() => new Array(n).fill(0))
方法2、
Array.from({length:m},() => new Array(n).fill(0));文章来源地址https://www.toymoban.com/news/detail-474956.html

到了这里,关于JavaScript创建二维数组踩坑记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python如何创建二维数组和初始化

            严格意义上说,Python中并没有数组的概念,Python中表达一组数据有多种形式,例如list,tuple,set等数据结构都可以表达一组数,并且这组数也没有C和C++中数组的的同质限制,这些数可以是任何一种数据类型。         以list为例(list又叫列表),要想实现一个所

    2024年02月20日
    浏览(55)
  • chatgpt赋能python:Python如何创建二维数组

    在Python编程中,经常需要使用到二维数组,它是一个由多个一维数组组成的数组。本篇文章将介绍Python如何创建二维数组,包括几种常用方法。 可以使用list和for循环来创建二维数组。代码如下:

    2024年02月11日
    浏览(47)
  • javascript二维数组(21)执行异步HTTP(Ajax)请求的方法($.get、$.post、$getJSON、$ajax)

    . g e t 、 .get、 . g e t 、 .post、 g e t J S O N 、 getJSON、 g e t J SON 、 ajax都是jQuery提供的用于执行异步HTTP(Ajax)请求的方法。每个方法都有其特定的用途和区别。 . g e t :这个方法使用 G E T 方式来进行异步请求。其语法结构为: .get:这个方法使用GET方式来进行异步请求。其语

    2024年02月07日
    浏览(47)
  • 记录--JavaScript 令人惊讶的一点:对于空数组every()方法返回true

    JavaScript 语言的内核足够大,导致我们很容易误解它的某些部分是如何工作的。我最近重构了一些使用 every ()方法的代码,并且发现我并不真正理解every()的逻辑。在我看来,我认为回调函数必须被调用并返回 true的时候every() 才能返回 true,但事实并非如此。但是对于空数组,

    2024年02月08日
    浏览(42)
  • leetcode — JavaScript专题(五):计数器 II、只允许一次函数调用、 创建 Hello World 函数、将对象数组转换为矩阵、节流、分块数组

    专栏声明:只求用最简单的,容易理解的方法通过,不求优化,不喜勿喷 题面 请你写一个函数 createCounter. 这个函数接收一个初始的整数值 init 并返回一个包含三个函数的对象。 这三个函数是: increment() 将当前值加 1 并返回。 decrement() 将当前值减 1 并返回。 reset() 将当前值

    2024年02月03日
    浏览(45)
  • JAVA——二维数组遍历二维数组的三种方法

    目录 🍒java中二维数组的定义和赋值 🍒二维数组遍历的三种方法 🍇第一种:for循环遍历 🍇第二种方法:通过Arrays.deepToString()遍历 🍇第三种方法:通过for(   :   )遍历 二维数组其实就是特殊的一维数组; 在java中将这句话诠释得淋漓尽致; 运行截图: 运行截图: 注意

    2024年02月08日
    浏览(41)
  • JavaScript 踩坑 WebSocket

    目的: 想编写一个websocket自动重连功能 方法: 当连接断开时,利用 .onclose 创建定时任务,定时尝试创建websocket连接。 异常现象: 定时任务间隔在2秒以内,当网络通畅后,最后有多个websocket同时建立。 原因: 定时任务创建websocket是异步执行,但没有在任务内判断上一个

    2023年04月14日
    浏览(30)
  • 数组----二维数组

    多维数组元素有多个下标,以标识它们在数组中的位置,所以也称为 多下标变量。 格式: [存储类型符]   数据类型符   数组变量名[整型常量表达式1] [整型常量表达式2]; 对二维数组中数据单元的引用格式如下: 数组变量名[下标1][下标2] 例子: int a[2][3]; 定义了a是一个

    2024年02月12日
    浏览(32)
  • 【PHP】二维数组转一维数组

    在 PHP 中,如果你想将一个二维数组转换为一维数组,你可以使用几种不同的方法。以下是一些常见的方法: array_column() 用于提取数组中的列,最为直接 array_map() 用于对数组中的每个元素应用回调函数,返回的是由回调函数的返回值组成的新数组。 以上任何一种方法都可以

    2024年02月04日
    浏览(62)
  • 【JavaSE】一维数组和二维数组详解

    欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 一维数组 基本语法 初始化 遍历和打印 数组是引用型变量 基本类型变量与引用类型变量的区别 null 数组传参和返回 总结 二维数组 基本语法 初始化 遍历和打印 数组:可以看成是相同类型元素的

    2024年04月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包