创建二维字符串数组
Two-dimensional string array creation
我正试图以以下方式用javascript创建1个字符串的二维数组:
var panel = new Array(3).fill(new Array(3).fill('*'));
结果是
[
['*', '*', '*'],
['*', '*', '*'],
['*', '*', '*']
]
之后我需要替换中间字符串:
panel[1][1] = '#';
结果是
[
['*', '#', '*'],
['*', '#', '*'],
['*', '#', '*']
]
因此,原型fill
函数似乎通过引用将对象填充到数组中。
是否可以强制fill
函数用不同的对象实例填充数组?如果没有,在你看来,创建这种类似二维数组的方法是最好的?
更新
算法假设创建一个星号平面,然后用另一个符号替换许多星号,从而产生一些合理的结果。之后,它将被打印出来。
在C
中,它可以使用char
s的矩阵和在任何索引处改变符号来完成。但就我们不能简单地更改javascript字符串中的单个符号而言,我正在努力寻找一些好的类似方法。
目前,我已经使用两个循环创建了二维数组,然后更改了所需的符号,然后使用map
和join
函数将结果连接到一个字符串中。但这是最好的解决方案吗?
谢谢。
不确定这个方法的效率,但使用JSON.stingify()
将数组转换为字符串,然后通过JSON.parse()
解析回原始格式,会使对象失去原始引用,并且可以毫无痛苦地工作。
var panel = new Array(3).fill(new Array(3).fill('*'));
var copy = JSON.parse(JSON.stringify(panel));
copy[1][1] = '#';
//you can assign the value of variable 'copy' back to 'panel' if required.
document.write(JSON.stringify(copy)); //for demo
您可以在没有额外变量的情况下将上述逻辑简化为单行代码,这样
var panel = JSON.parse(JSON.stringify(new Array(3).fill(new Array(3).fill('*'))));
panel[1][1] = '#';
document.write(JSON.stringify(panel)); //for demo
这是一个肮脏的修复程序,但我还是会给出它:
var panel = new Array(3).fill(new Array(3).fill('*'));
panel[1] = [panel[1][0],"#",panel[1][2]];
console.log(panel);
/*
Result:
[
['*', '*', '*'],
['*', '#', '*'],
['*', '*', '*']
]
*/
相关文章:
- 作为一个二维数组,从ajax接收
- 创建P5.js二维数组
- 在WebGL中绘制多个二维图像
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- inArray,indexOf在二维数组中
- 比较二维数组js
- 从二维数组中获取img src和img维度,并在body中显示
- 如何将以下字符串拆分为二维数组:
- 在 JavaScript 中动态创建带有字符串索引的二维表
- 创建二维字符串数组
- Javascript:一个二维数组的字符串
- 将字符串的一维数组转换为二维数组
- 分析从数据库中作为字符串检索的二维数组
- 将字符串转换为Javascript中的二维数组
- Javascript二维字符串数组更新值
- 将javascript字符串转换为二维数组
- 将字符串与二维数组进行比较
- 将c#中的二维数组转换为javascript的Json字符串
- 如何创建具有字符串索引的二维对象并循环遍历结果
- 根据选择的下拉文本字符串获取二维数组值