如何使for循环动态?

时间:2016-04-21 04:10:13

标签: javascript jquery

我有2个数组,例如[2,3][1000,1200,500,600,1600]。 我需要为此写一个for loop

1.从0开始索引,在2开始索引。

2.从2和结束索引开始时间,前2个元素的总和(2 + 3)= 5.

var arr = [2,3];
for(var i = 0; i<arr.length;i++)
{
    //this loop runs 2 time
    for(var j = 0 ; j < 2 ; j++)//for the first time
    for(var j = 2 ; j < 5 ; j++)//for the second time

}

如何使这个动态循环?有人可以帮我代码吗?

4 个答案:

答案 0 :(得分:1)

这可以做你想要的,也可以扩展。

for(int y = 0; y < column; y++)
{
    allmin[y] = min
    allmax[y] = max
    for(int x = 0; x < row; x++)
    {
         allmin[y] = std::min(matrix[x][y], allmin[y]); //allmin[y] always store the min value has meet before
         allmax[y] = std::max(matrix[x][y], allmax[y]); //allmax[y] always store the max value has meet before
   }

   cout << "Mins " << allmin[y] << "\n";
}

答案 1 :(得分:1)

希望你期待这一点。

var arr = [2, 3];
for (var i = 0; i < arr.length; i++) {
    //this loop runs 2 time
    if (i == 0) {
       //for the first time
       for (var j = 0; j < arr[0]; j++) { }
    } else if (i == 1) {
       //for the second time
       var totalSum = arr[0] + arr[1];
       for (var j = arr[0]; j < totalSum; j++) //for the second time
        { }
   }
}

答案 2 :(得分:1)

如果您希望它是通用的,即您有包含要处理的元素计数的数组arr,您可以这样做:

var arr = [2,3];

// k is the index into the second array, initialize to 0 here
for(var i = 0, k = 0; i < arr.length;i++)
{
    //this loop runs for each element in the arr[] array
    for(var j = 0 ; j < i; j++, k++) // increment k
    {
        // k is now the value you want:
        // first time through the loop 0, 1
        // second time through the loop 2, 3, 4
    }
}

另一个调整是只跟踪start元素,如果j对于值很重要:

var arr = [2,3];
var start = 0;
for(var i = 0; i < arr.length; i++)
{
    var end = start + arr[i]; // end is 2,5 in sample
    for(var j = start ; j < end; j++)
    {
        // first time through the loop 0, 1
        // second time through the loop 2, 3, 4
    }
    start = end; // now start at the next index, 0,2 in sample
}

答案 3 :(得分:0)

做这样的事情:

var k = 0;
for(var j = 0 ; j < 2 ; j++) {
 k+=arr[j];
}//for the first time
    for(var i = 2 ; i < k ; i++) {
       //other code
}