javascript - 练习二维数组

标签 javascript arrays

我正在编写一个脚本,它将在较大的 map 中生成一个方形房间。代码如下所示:

var mapSize = 10;
var map = [];
for (var x = 0; x < mapSize; x++) {
    map[x] = [];
    for (var y = 0; y < mapSize; y++) {
        map[x][y] = 0
        };
    };
//Make square room within map
var roomSize = 3;
var roomType = "Kitchen"
var paintRoom = function(mapX, mapY) {
    for (var j = 0; j < roomSize; j++) {
      map[mapX + j][mapY] = roomType;
      map[mapX][mapY + j] = roomType;
    };
};
paintRoom(3, 4);
console.log(map);

我想要的结果是这样的:

[
  [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, 0, 0, 0, 0, 0], 
  [0, 0, 0, 0, "Kitchen", "Kitchen", "Kitchen", 0, 0, 0], 
  [0, 0, 0, 0, "Kitchen", "Kitchen", "Kitchen", 0, 0, 0], 
  [0, 0, 0, 0, "Kitchen", "Kitchen", "Kitchen", 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, 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, 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, 0, 0, "Kitchen", "Kitchen", "Kitchen", 0, 0, 0], 
  [0, 0, 0, 0, "Kitchen", 0, 0, 0, 0, 0], 
  [0, 0, 0, 0, "Kitchen", 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], 
  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]

我在这里缺少什么?我刚刚开始,想自己尽可能多地弄清楚,所以如果有人能给我提示而不是直接回答,我将非常感激。

最佳答案

如果您仔细遵循代码,它就会按照您的要求进行操作。它只需要一个额外的循环。由于您正在做的事情是二维的,那么您还需要 2 个循环...

var paintRoom = function(mapX, mapY) {
    for (var x = 0; x < roomSize; x++) {
        for (var y = 0; y < roomSize; y++) {
            map[mapX + x][mapY + y] = roomType;
        }
    };
};

关于javascript - 练习二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36895890/

相关文章:

javascript - 仅使用 Javascript 选择没有类或 ID 的图像

javascript - 输入数字部分功能仅有效一次

javascript - 如何将数据以及子组件发送到组件 - JavaScript - React

java - 将几个字节数组复制到一个大字节数组

jQuery datepicker 自定义规则请帮忙

php - 如何在 div(幻灯片)和 Kiosk 数据问题上设置 setTimeout/delay

Javascript 正则表达式积极前瞻

php - 用 boolean 值(PHP)评估数组的最短方法?

PHP 数组 : Pop an array of single-element arrays into one array

php - Javascript 对象到数组的转换以发送到 Php