在for循环中创建多维数组

时间:2014-09-01 14:17:19

标签: javascript angularjs loops multidimensional-array

我想创建一个像这样的多维数组:

array[0][1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
array[1][21,22,23,24,25,26,27....]
array[.][....]

如何在Javascript中执行此操作?

我试过这个:

var squares = new Array();
        for(var i = 1; i <= 8; i++)
        {
            for(var j = 1; j <= 20; j++)
            {
                squares.push(i, j);     
            }

        }

我该如何做到这一点?

4 个答案:

答案 0 :(得分:2)

您可以这样做:

var squares = new Array();
for(var i = 0; i <= 8; i++)
{
    squares[i] = new Array();
    for(var j = (i * 20) + 1; j <= 20 * i + 20; j++)
        if (squares[i] == null)
            squares[i] = j;
        else
            squares[i].push(j);
}

输出如下:

array[0][1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
array[1][21,22,23,24,25,26,27....]

答案 1 :(得分:0)

使用模数操作数来限制内部数组的大小

var limit = 80
var inner_limit = 20
var square=[]
var inner =[]
for(var i=1;i<=limit;i++){
    inner.push(i)        
    if(i%inner_limit==0){
        square.push(inner)
        inner = []
    }

}

答案 2 :(得分:0)

var array = []; // Main array
var numArrays = 10, // Number of sub-arrays
    numPerArray = 20; // Number of squares per sub-array

for(var i = 0; i < numArrays; i++){
    var subArray = [];
    // Number to start at
    var start = i * numPerArray;
    // Count up to start + numPerArray
    for(var j = start; j < start + numPerArray; j++){
        subArray.push(j);
    }
    // Add to main array
    array.push(subArray);
}

答案 3 :(得分:0)

你可以用两个&#34; for&#34;循环。在第一个循环中,您将浏览主数组,并为每个元素添加第二个循环中的元素。

var arrayLength = 10; // Main array length
var limit = 20; // Number of squares
var array = [];

for ( var i = 0; i < arrayLength; i++ )
{
    array[i] = []; // Create subArray

    for( var j = 1; j <= limit; j++ )
    {
        array[i].push(j);
    }
}