我尝试了很多不同的解决方案,
但我不太确定是否是问题所在
与我的方法或代码不起作用

例如,

我希望能够在下面的数组中设置值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],
]

最佳答案

您需要切换xy,因为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));

09-25 16:03