我想生成一个3x3的字段。我想用JS做到这一点,它应该是一个web应用程序。
所有字段都以false开头。但似乎是这样,我的代码不能正常工作,但我没有找到我的错误。我们的目标是,每个航天器都是可访问的。
这是我的主意。
// define size
var esize = generateSpace(3);
}
space[i] = false
正在用单个布尔值false
替换数组,而不是填充您刚刚创建的数组中的所有条目。你需要另一个循环来初始化数组的所有元素。
function generateSpace(x) {
var space = [];
for (var i = 0; i < x; i++) {
space[i] = [];
for (var j = 0; j < x; j++) {
space[i][j] = false;
}
}
return space;
}
同样,您的for()
循环条件是错误的,因为您没有初始化space
的最后一个元素。应该是i < space.length
。
当它完成后,它需要返回它创建的数组
由于我感到有些无聊,并且感觉很乱,您还可以初始化您的数据集,如下所示:
function generateSpace(x) {
return Array.apply(null, Array(x)).map(function() {
return Array.apply(null, Array(x)).map(function() {
return false;
});
});
}
其他函数同样工作得很好,但这里有一个使用ES6的相当简单的函数,适用于任何方形网格:
function generateSpace(x) {
return Array(x).fill(Array(x).fill(false));
}