You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历两个数组并结合AND/OR运算符生成目标字符串?

完善JavaScript代码生成指定SQL条件字符串

需求说明

需要遍历statArr和typeArr两个数组,结合AND与OR运算符生成如下格式的SQL条件字符串:

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);

完善后的代码

var statArr = ["Closed", "Investigation"];
var typeArr = ["RD", "WW", "CC", "MB", "CN" ];
var sql = "";

// 外层遍历状态数组
for (let i = 0; i < statArr.length; i++) {
  const currentStat = statArr[i];
  // 内层遍历类型数组,生成当前状态对应的所有类型条件
  for (let j = 0; j < typeArr.length; j++) {
    const currentType = typeArr[j];
    // 拼接单个条件,给字段值添加单引号,统一字段名为小写
    sql += `stat = '${currentStat}' AND type = '${currentType}'`;
    // 非最后一组条件时,添加OR和换行
    if (!(i === statArr.length - 1 && j === typeArr.length - 1)) {
      sql += " OR\n";
    } else {
      // 最后一组条件添加空格,匹配示例格式
      sql += " ";
    }
  }
}

console.log(sql);

代码说明

  1. 嵌套循环:外层遍历状态数组,内层遍历类型数组,实现所有状态与类型的组合覆盖。
  2. 模板字符串:用模板字符串简化拼接逻辑,同时给字段值添加单引号,符合SQL语法规范。
  3. 边界判断:通过判断是否为最后一组条件,避免在字符串末尾生成多余的OR。
  4. 格式统一:将原始代码中的Type改为小写type,与期望输出的格式保持一致。

内容的提问来源于stack exchange,提问作者Behseini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:45:48