字符串连接object.values,其中object.key等于条件

问题描述

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

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

这是字符串结果:

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

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

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

谢谢。

解决方法

这是一种可行的方法,但实际上,您可能应该重新考虑整个设计。当然,有更好的方法可以完成您想要做的事情。

{}

,

您可以使用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)