For 循环中的动态 Javascript 条件

Dynamic Javascript condition in For loop

本文关键字:Javascript 条件 动态 循环 For      更新时间:2023-09-26

请查看下面的代码,请注意我的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;
}

为此,您需要将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);
  }