美文网首页
多维数组填充问题

多维数组填充问题

作者: 斯特莫 | 来源:发表于2018-10-21 17:02 被阅读0次

刷题时遇到一个判断是否为有效数独的算法题, 解法很简单用三个二维数组存数字的状态, 但是遇到一个问题, 就是初始化二维数组.
首先用fill函数去实现

let rowFlag = Array(9).fill(Array(9).fill(false));
....
console.log(rowFlag);
rowFlag[i][c] = true;
console.log(rowFlag);
qqq.png

这个问题很明显是浅拷贝的问题, 改一下

let flag = Array(9).fill(false);
let rowFlag = Array(9).map(() => flag.concat());
....
console.log(rowFlag);
rowFlag[i][c] = true;
console.log(rowFlag);

然后就直接报rowFlag[i]为undefined, 网上找了下原因:
Array 支持两种构造方式。使用参数形式给定 N 个数组元素,或者给定一个数组长度。
使用 new Array(arrayLength) 方式构造的数组是一个稀疏数组,里面是没有任何值的,只有长度。所以这个方式构造出来的数组是无法遍历的,也就无法用 map 遍历填充值了。
再修改一下

let flag = Array(9).fill(false);
let rowFlag = Array.apply(null, Array(9)).map(() => flag.concat());
....
console.log(rowFlag);
rowFlag[i][c] = true;
console.log(rowFlag);
www.png

现在好了

相关文章

  • 多维数组填充问题

    刷题时遇到一个判断是否为有效数独的算法题, 解法很简单用三个二维数组存数字的状态, 但是遇到一个问题, 就是初始化...

  • 多维数组

    创建多维数组 多维数组可以看成是数组的数组,二维数组是最基本的多维数组。 要创建多维数组,请将每个数组放在其自己的...

  • TS学习笔记(5)-多维数组

    多维数组的使用 ========= 知识点 多维数组的定义方法 多维数组的使用方法 代码

  • 4.3~1多维数组

    多维数组可以看作是数组的数组,如果将多维数组看作是比较特殊的一维数组,那数组的元素本身就是数组。在学习多维数组之前...

  • Julia快速入门(五)多维数组 字典

    本篇代码在Julia1.0.2中测试通过 多维数组 多维数组定义 多维数组生成 字典 Julia使用Dict(字典...

  • 2019-07-27

    多维数组: int [][]; 多维数组的声明 ; int [] [] a = new [2][3] new [...

  • 数组

    Arrays工具类的使用 多维数组 多维数组存储表格数据

  • 学习Java第五天

    数组是多个数据的集合 数组的语法 数组元素类型【】 数组名; 多维数组: 数组元素类型【】【】 数组名; 多维数组...

  • PHP Day4:基础回顾与加强

    多维数组 多维数组指的是包含一个或多个数组的数组。 PHP 能理解两、三、四或五级甚至更多级的多维数组。不过,超过...

  • Java学习day-13:多维数组和冒泡排序

    一、多维数组: 多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组。 1.二维数组: (1)二维...

网友评论

      本文标题:多维数组填充问题

      本文链接:https://www.haomeiwen.com/subject/tabbzftx.html