我如何循环成两个数组并创建来自statArr和typeArr两个数组的字符串输出,并附加一些AND & OR操作符?
我希望得到的输出是
stat = 'Closed' AND type = 'RD' OR
stat = 'Closed' AND type = 'WW' OR
stat = 'Closed' AND type = 'CC' OR
stat = 'Closed' AND type = 'MB' OR
stat = 'Closed' AND type = 'CN' OR
stat = 'Investigation' AND type = 'RD' OR
stat = 'Investigation' AND type = 'WW' OR
stat = 'Investigation' AND type = 'CC' OR
stat = 'Investigation' AND type = 'MB' OR
stat = 'Investigation' AND type = 'CN'
var statArr = ["Closed", "Investigation"];
var typeArr = ["RD", "WW", "CC", "MB", "CN" ];
var sql = "";
for (let i = 0; i < statArr.length; i++) {
sql += "stat = " + statArr[i] + " AND Type =";
}
console.log(sql);
发布于 2022-09-04 18:40:20
嵌套两个for循环以生成每个stat/type组合,然后将它们与OR连接起来。我在每个子句中添加了括号,以确保优先级按其应有的方式工作。
var statArr = ["Closed", "Investigation"];
var typeArr = ["RD", "WW", "CC", "MB", "CN" ];
var clauses = [];
for(var stat of statArr) {
for(var type of typeArr) {
clauses.push(`(stat = '${stat}' AND type = '${type}')`);
}
}
var sql = clauses.join(" OR ");输出是
(stat = 'Closed' AND type = 'RD') OR (stat = 'Closed' AND type = 'WW') OR (stat = 'Closed' AND type = 'CC') OR (stat = 'Closed' AND type = 'MB') OR (stat = 'Closed' AND type = 'CN') OR (stat = 'Investigation' AND type = 'RD') OR (stat = 'Investigation' AND type = 'WW') OR (stat = 'Investigation' AND type = 'CC') OR (stat = 'Investigation' AND type = 'MB') OR (stat = 'Investigation' AND type = 'CN')不过,我觉得你可能真的想
stat IN ('Closed', 'Investigation') AND type IN ('RD', 'WW', 'CC', 'MB', 'CN')可以生成的
const quote = s => `'${s}'`;
var sql = `stat IN (${statArr.map(quote).join(", ")}) AND type IN (${typeArr.map(quote).join(", ")})`;发布于 2022-09-04 18:46:47
使用嵌套的for循环,可以获得结果。
var statArr = ["Closed", "Investigation"];
var typeArr = ["RD", "WW", "CC", "MB", "CN" ];
var sql = "";
for (let i=0; i<statArr.length; i++) {
for(let j=0; j<typeArr.length; j++){
console.log(`stat = '${statArr[i]}' AND type = '${typeArr[j]}' OR`)
}
}https://stackoverflow.com/questions/73601893
复制相似问题