使用for循环创建多维数组

时间:2018-03-21 09:56:40

标签: javascript arrays multidimensional-array

我想使用for循环创建一个multidimensionnale数组。 我需要的结果是:

SingletonAttribute

那么如何从1循环到10并且每3个数字我创建一个新数组? 我找不到解决方案..非常感谢您的帮助

4 个答案:

答案 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)

这个可能是最简单的解决方案:

&#13;
&#13;
const result = [];
for(let i = 1; i < 10; i = i + 3) {
  result.push([i, i+1, i+2]);
}
console.log(result);
&#13;
&#13;
&#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);