【问题标题】:javascript is there a way to increment a for loop with a variablejavascript有没有办法用变量增加for循环
【发布时间】:2018-05-27 08:59:58
【问题描述】:

我有一个函数——我们称它为 test(arg1,arg2),它是从 program1 调用的,它做了很多事情并且工作正常。在测试中有一个循环:

for(j=1;j<=top;j++) {
   stuff happens based on j 
}

我想从另一个程序调用 test(arg1,arg2),比如 program2。除了 for 循环之外,这两个程序的所有关于 test 的内容都是相同的。对于program2,我需要那个循环是

for(j=2;j<=top;j+=2) {
   stuff happens based on j 
}

否则其他一切都完全相同。

第二个参数 arg2 告诉我们脚本是从 program1 还是 program2 调用的。但我不知道如何编写变量“for”语句。我尝试了一个基于 arg2 的 if 语句

var jstart = 1 or 2 
var jincr = '++' or '+=2'

然后把循环写成

for(j=jstart;j<=top;j jincr) {

这不起作用,尽管它是一种适用于其他语言的方法。

有人可以建议我在不为这两种情况编写完全独立的脚本的情况下做到这一点吗?

【问题讨论】:

  • 你不能直接输入if(jStart == 1) { j++; } else { j += 2; }吗?评估代码只是为了完成这样的事情是非常hacky的,即使其他语言允许(JS也允许)。

标签: javascript for-loop


【解决方案1】:

就这么简单

jstart = 1 // or 2
jincr = 1 // or 2;
for(j=jstart;j<=top;j += jincr) {

【讨论】:

  • 这很好。
【解决方案2】:

最可重用的方法是将循环放在一个接受增量作为参数的函数中:

function doStuff (inc) {
  for(var j = inc; j <= top; j += inc) {
    // stuff happens based on j 
  }
}

// Program 1
doStuff(1)

// Program 2
doStuff(2)

【讨论】:

  • 对我来说这是最简单的,虽然下面的答案也很有帮助。
猜你喜欢
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多