我正在尝试用JavaScript创建一个由一字符字符串构成的二维数组,代码如下:
var panel = new Array(3).fill(new Array(3).fill('*'));
结果是
[
['*', '*', '*'],
['*', '*', '*'],
['*', '*', '*']
]
接下来我需要替换中间的字符串:
panel[1][1] = '#';
结果是:
[
['*', '#', '*'],
['*', '#', '*'],
['*', '#', '*']
]
看起来原型fill
函数通过引用填充数组。
是否可能强制fill
函数使用不同的对象实例填充数组?
如果不行,你认为哪种方法创建这样的二维数组最好?
更新
算法假设创建一个由星号组成的平面图形,然后将其中许多星号替换为其他符号,从而创建出一些合理的结果。然后将其打印出来。
在C
中,可以使用char
矩阵并更改任何索引处的符号来完成此操作。
但由于我们无法简单地更改javascript字符串中的单个符号,因此我正在尝试寻找一些良好的类比。
目前,我使用两个循环创建了二维数组,然后更改所需的符号,然后使用map
和join
函数将此结果连接到单个字符串中。但这是最好的解决方案吗?
谢谢。