string join object.values,其中object.key等于condition



我有一个对象,需要将其联接到sql条件字符串中。这就是目标:

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

这是字符串结果:

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

问题是我只需要加入那些有名字的人。最后一个字母没有名字,所以我不需要";"与";。

如果房产没有名字,请跳过";"与";并且仅使用该值。

提前谢谢。

这里有一种可能的方法,但实际上,您可能应该重新考虑整个设计。肯定有更好的方法来完成你想要做的事情

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)

最新更新