首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将两个独立数组的值循环和输出到一个字符串中

如何将两个独立数组的值循环和输出到一个字符串中
EN

Stack Overflow用户
提问于 2022-09-04 18:35:58
回答 2查看 27关注 0票数 0

我如何循环成两个数组并创建来自statArrtypeArr两个数组的字符串输出,并附加一些AND & OR操作符?

我希望得到的输出是

代码语言:javascript
复制
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' 

代码语言:javascript
复制
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);

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-04 18:40:20

嵌套两个for循环以生成每个stat/type组合,然后将它们与OR连接起来。我在每个子句中添加了括号,以确保优先级按其应有的方式工作。

代码语言:javascript
复制
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 ");

输出是

代码语言:javascript
复制
(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')

不过,我觉得你可能真的想

代码语言:javascript
复制
stat IN ('Closed', 'Investigation') AND type IN ('RD', 'WW', 'CC', 'MB', 'CN')

可以生成的

代码语言:javascript
复制
const quote = s => `'${s}'`;
var sql = `stat IN (${statArr.map(quote).join(", ")}) AND type IN (${typeArr.map(quote).join(", ")})`;
票数 2
EN

Stack Overflow用户

发布于 2022-09-04 18:46:47

使用嵌套的for循环,可以获得结果。

代码语言:javascript
复制
    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`)
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73601893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档