For循环中的动态Javascript条件

时间:2016-03-11 00:52:25

标签: javascript

请查看下面的代码,请注意我的for循环的条件取决于step参数。

而不是每次执行条件时它决定使用哪个分支,我想测试一次 - 我原本应该创建一个委托或条件,但它似乎不起作用。

JS可以这样做吗?

代码:

function(start, end, step) {
  if (step === undefined) {
    step = 1;
  }

  var result = [];
  for (; (step < 0) ? start >= end : start <= end; start += step) {
    result.push(start);
  }

  return result;
}

我的尝试:

function(start, end, step) {
  if (step === undefined) {
    step = 1;
  }

  var condition = (step < 0) ? start >= end : start <= end;
  var result = [];
  for (; condition; start += step) {
    result.push(start);
  }

  return result;
}

1 个答案:

答案 0 :(得分:2)

为此,您需要使condition成为一个函数,如下所示。但即使你这样做,条件仍然会在循环的每次迭代中执行。

  var condition = (step < 0) ?
      function(start){
          return start >= end;
      } :
      function(start){
          return start <= end;
      };
  var result = [];
  for (; condition(start); start += step) {
    result.push(start);
  }