Javascript 如何使for循环成为动态的?

Javascript 如何使for循环成为动态的?,javascript,jquery,Javascript,Jquery,我有两个数组,如[2,3]和[100012005006001600]。 我需要为类似的循环编写一个 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

我有两个数组,如
[2,3]
[100012005006001600]
。 我需要为类似的循环编写一个

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

}
var-arr=[2,3];

对于(var i=0;i执行以下操作:

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
}
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
    }
}
var k=0;
对于(var j=0;j<2;j++){
k+=arr[j];
}//第一次
对于(变量i=2;i
这将实现您想要的功能,并且是可扩展的

var arr = [2,3];
var sum = 0;
for(var i = 0; i<arr.length;i++)
{
   sum += arr[i]
   if (i === 0) {
      for(var j = 0 ; j < arr[0] ; j++) 
         // Do first thing
   }
   if (i > 0) {
      for(var j = arr[0] ; j < sum ; j++)
         // Do second thing
   }
}
var-arr=[2,3];
var总和=0;
对于(变量i=0;i 0){
对于(var j=arr[0];j
希望您能期待

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
        { }
   }
}
var-arr=[2,3];
对于(变量i=0;i
如果您希望它是通用的,即您有包含要处理的元素计数的数组
arr
,您可以这样做:

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
}
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
    }
}
var-arr=[2,3];
//k是第二个数组的索引,在这里初始化为0
对于(变量i=0,k=0;i
另一个调整是,如果j作为值很重要,则只跟踪start元素:

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
}
var-arr=[2,3];
var start=0;
对于(变量i=0;i
你需要这样的东西吗?
vararr=[2,3];for(vari=0;i
是,但动态@johnr这应该更通用吗?即
arr
可以有5或10个元素吗?是的数组也是通用的@JasonGoemaatI需要动态更改开始索引和结束索引。@EngineerCampstart索引不能是0 altime@EngineerCamp请检查我用您的答案制作的小提琴@EngineerCamp@Anu-什么你期望/想要输出吗?我从你那里得到答案:)@EngineerCamp使用这个我需要访问另一个数组我只能得到第一个元素@Jason GoemaatI摆弄了你的第二个答案请检查@Jason Goemaat