Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For循环中的动态Javascript条件_Javascript - Fatal编程技术网

For循环中的动态Javascript条件

For循环中的动态Javascript条件,javascript,Javascript,请查看下面的代码,注意我的for循环的条件取决于步骤参数 不是每次执行条件时,它都会决定使用哪个分支,而是我想测试一下——我本来以为我可以创建一个委托或条件的一部分,但它似乎不起作用 在JS中可以这样做吗 代码: 功能(开始、结束、步骤){ 如果(步骤===未定义){ 步骤=1; } var结果=[]; 对于(;(步骤=end:start=end:start要执行此操作,您需要将条件设置为一个函数,如下所示。但即使这样做,该条件仍会在循环的每次迭代中执行 var condition = (s

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

不是每次执行条件时,它都会决定使用哪个分支,而是我想测试一下——我本来以为我可以创建一个委托或条件的一部分,但它似乎不起作用

在JS中可以这样做吗

代码:

功能(开始、结束、步骤){
如果(步骤===未定义){
步骤=1;
}
var结果=[];

对于(;(步骤<0)?start>=end:start=end:start要执行此操作,您需要将
条件
设置为一个函数,如下所示。但即使这样做,该条件仍会在循环的每次迭代中执行

  var condition = (step < 0) ?
      function(start){
          return start >= end;
      } :
      function(start){
          return start <= end;
      };
  var result = [];
  for (; condition(start); start += step) {
    result.push(start);
  }
var条件=(步骤<0)?
功能(启动){
返回开始>=结束;
} :
功能(启动){

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

  var condition = (step < 0) ?
      function(start){
          return start >= end;
      } :
      function(start){
          return start <= end;
      };
  var result = [];
  for (; condition(start); start += step) {
    result.push(start);
  }
var条件=(步骤<0)?
功能(启动){
返回开始>=结束;
} :
功能(启动){

返回start,因为在更改
start
之前对条件进行了评估,所以该方法不起作用。一种黑客方法是将每个条件定义为一个函数。不过肯定有更好的方法。我将继续使用它。这不起作用,因为在更改
start
之前对条件进行了评估。一种黑客方法是将每个条件定义为一个函数一个函数。不过肯定有更好的方法。我会用它。
  var condition = (step < 0) ?
      function(start){
          return start >= end;
      } :
      function(start){
          return start <= end;
      };
  var result = [];
  for (; condition(start); start += step) {
    result.push(start);
  }