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