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)
我有一个对象需要加入 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)