【发布时间】:2019-09-18 15:25:52
【问题描述】:
我正在尝试使用其他两个数组的组合值填充一个数组,并尝试使用 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:"="}'
【问题讨论】:
-
您在两个循环中都使用了变量
i。这是一个错误。 -
顺便说一句,你为什么不使用
JSON.stringify()而不是手动构造这些字符串? -
你不需要两个 for 循环来获得你想要的结果
-
对,嵌套循环用于从两个数组中获取所有组合。如果你想并行组合它们,你只需使用一个循环并使用两个数组的索引。
-
@MarcoDalZovo 发布一个答案,展示如何正确地做到这一点。
标签: javascript for-loop if-statement