FOR 循环中 IF 语句的正确语法是什么?

阿杰·乌比

我正在尝试使用其他两个数组的组合值填充一个数组,并尝试使用 for 循环来执行此操作。

var filterTables = ["1","2","3"]
var filterValues = ["Egypt",,"Ghana"]

for (i = 0; i < filterValues.length ; i++) {        
  if (filterValues[i]) { 
    for (i = 0; i < filterValues.length ; i++) {
      var filter = '{field: '+filterTables[i]+',value:'+filterValues[i]+',operator:"="},'
      filterArray.filters.push(filter)       
      if (i===3) {
         '{field: "'+filterTables[i]+'",value:"'+filterValues[i]+'",operator:"="}'
      }
    }
  } 
}

但是 FOR 循环根本没有执行,我认为这是因为第一个 IF 语句检查当前 [i] 位置是否有值。是否正确使用?我需要在 FOR 循环之外使用 IF 语句吗?

这是想要的结果:

var filter = '{field: '1',value:'Egypt',operator:"="}'
var filter = '{field: '3',value:'Ghana',operator:"="}'
阿尼斯·R。

这里有几个问题:

1- 什么是变量filterArrayfilterArray.filters它们是否在您的代码中定义?我认为它们不是,因为一旦我添加了一个声明,循环就会按预期执行。

2- 正如许多评论所指出的,您不需要嵌套循环来达到所需的结果(而且您i在两个循环中都使用相同的计数器,这肯定会导致问题)。

您可以使用一个循环,并在每次迭代读取filterTables[i]filterValues[i]以及填写相应的对象。

顺便提一下,为什么不使用JSON.stringify来构建您的 JSON 字符串?

var filterTables = ["1","2","3"];
var filterValues = ["Egypt",,"Ghana"];
var filterArray = {'filters': []}; //added variable declaration for the object `filterArray` and its property `filters`

for(var i = 0; i < filterValues.length; i++) {
  if(filterValues[i]) {
    var filter = JSON.stringify({
      field: filterTables[i], //I assume here you could just use i+1
      value: filterValues[i],
      operator: '='
    });
    
    filterArray.filters.push(filter);
  }
}

console.log(filterArray.filters);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章