我尝试了很多不同的解决方案,
但我不太确定是否是问题所在
与我的方法或代码不起作用
例如,
我希望能够在下面的数组中设置值im最初设置这是我的尝试
function makepointfrom(x,y,size)
{
for(var y2= y;y2 < size;y2++)
{
tilemap[x][y2] = num;
}
}
var tilemap =
[
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
]
makepointfrom(2,0,4);
预期产量
var tilemap =
[
[0,0,1,0,0],
[0,0,1,0,0],
[0,0,1,0,0],
[0,0,1,0,0],
[0,0,1,0,0],
]
不
var tilemap =
[
[0,0,1,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
]
最佳答案
您需要切换x
和y
,因为x
是行。然后,我建议使用偏移量,并使用总和来访问元素。
function makepointfrom(x, y, size) {
for (var i = 0; i < size; i++) {
if (!tilemap[x + i]) continue;
tilemap[x + i][y] = 1;
}
}
var tilemap = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]];
makepointfrom(0, 2, 4);
tilemap.map(a => console.log(...a));