[英]JS multidimensional array spacefield
我想生成一个3x3的字段。 我想用JS做到这一点,它将是一个Web应用程序。
所有字段均应以假开头。 但是似乎我的代码无法正常工作,但是我没有找到我的错。 目的是使每个空间部门都可访问。
那就是我的主意:
// 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));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.