我想使用for循环创建一个multidimensionnale数组。 我需要的结果是:
SingletonAttribute
那么如何从1循环到10并且每3个数字我创建一个新数组? 我找不到解决方案..非常感谢您的帮助
答案 0 :(得分:3)
这应该是你要找的东西:
var outer = [];
var inner = [];
for (var i = 1; i < 10; i++) {
inner.push(i);
if (inner.length == 3) {
outer.push(inner);
inner = [];
}
}
if (inner.length > 0) outer.push(inner);
console.log(outer);
如果你不想要任何少于3个内部元素的元素,请在循环后删除if
。
答案 1 :(得分:1)
这个可能是最简单的解决方案:
const result = [];
for(let i = 1; i < 10; i = i + 3) {
result.push([i, i+1, i+2]);
}
console.log(result);
&#13;
如果您确定要连续3个号码,则每次跳过3可以循环播放1到10,因此i
圈内的for
循环为1
,然后在最后一次迭代中4
然后7
。每次迭代时,您都会在现场创建[i, i+1, i+2]
数组并将其推送到result
数组。然而,该解决方案基于上述条件。它适用于10
,对于任何数字,它需要if
循环内的其他for
语句。
答案 2 :(得分:0)
var c = 1;
for(var i = 0; i < 3; i++)
for(var j = 0; j < 3; j++)
array[i][j] = ++c;
答案 3 :(得分:0)
您可以采用单个循环并将变量用于2D数组的第一个索引。
var i, r, array = [];
for (i = 0; i < 9; i++) {
r = Math.floor(i / 3);
array[r] = array[r] || [];
array[r].push(i + 1);
}
console.log(array);