JavaScript есть способ увеличить цикл for с переменной - PullRequest
0 голосов
/ 27 мая 2018

У меня есть функция - назовем ее test (arg1, arg2), вызываемой из program1, которая выполняет несколько функций и работает правильно.Внутри test есть цикл:

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

Я хотел бы вызвать test (arg1, arg2) из ​​другой программы, например, program2.Все в тесте одинаково для этих двух программ, за исключением цикла for.Для программы 2 мне нужно, чтобы этот цикл был

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

В остальном все остальное точно так же.

Второй аргумент, arg2, сообщает нам, был ли скрипт вызван из program1 или program2.Но я не могу понять, как написать переменную "для" оператора.Я попробовал оператор if, основанный на arg2

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

, а затем записал цикл как

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

Это не сработало, хотя это подход, который работает на других языках.

Может кто-нибудь предложить мне, как я могу это сделать, не написав совершенно отдельный сценарий для двух случаев?

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Наиболее пригодный для повторного использования способ - поместить ваш цикл в функцию, которая принимает приращение в качестве аргумента:

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

// Program 1
doStuff(1)

// Program 2
doStuff(2)
0 голосов
/ 27 мая 2018

Так просто

jstart = 1 // or 2
jincr = 1 // or 2;
for(j=jstart;j<=top;j += jincr) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...