string join object.values 其中 object.key 等于条件

string join object.values where object.key equals condition

我有一个对象需要加入 sql 条件字符串。 这是对象:

   qFilters= {EMPRESA: "EMPRESA='DEMO'", QTD: "QTD IS NOT NULL ", " ": "OR MONTANTE IS NOT NULL"}

这是字符串结果:

whereStr += Object.values(qFilters).join(" AND ");

问题是我只需要加入具有属性名称的那些。最后一个属性没有名字,所以我不需要“AND”。

如果属性没有名称,请跳过“AND”并仅使用值。

提前致谢。

这是一种可行的方法,但实际上,您可能应该 re-think 整个设计。肯定有更好的方法来完成您想要做的事情。

var whereObj = {EMPRESA: "EMPRESA='DEMO'", QTD: "QTD IS NOT NULL ", " ": "OR MONTANTE IS NOT NULL"};

var where = "";
var first_loop = true;
for (const [key, value] of Object.entries(whereObj)) {
  if(key.trim()){
    if(!first_loop) where += " AND";
    where += " " + value;
  }else{
    where += " " + value;
  }
  first_loop = false;
}

console.log(where);

您可以使用 Object.keys 来过滤键类型:

const qFilters= {EMPRESA: "EMPRESA='DEMO'", QTD: "QTD IS NOT NULL ", " ": "OR MONTANTE IS NOT NULL"}

const res = Object.keys(qFilters).reduce((query, key) => {
  if(!!key.trim()){
    return [query, qFilters[key]].join(' AND ');
  } else {
    return [query, qFilters[key]].join(' ');
  }
});

console.log(res)