我有一个搜索页面,它有8个搜索条件。在Javascript中我想构建一个搜索(只是一个函数,因为我可以编写查询),具有多个搜索组合,如下所示, 我的搜索字段是A,B,C,D,E,F,G& H. 目前我正在努力构建如下,
if (a != "" && b == "" && c == "" && d == "" && e == "" && f == "" && g == "" && h == "") {
// my code queries for 'a'
} else if (a != "" && b != "" && c == "" && d == "" && e == "" && f == "" && g == "" && h == "") {
// my code queries for both 'a' & 'b'
}
同样,我必须写很多组合。有没有简单的方法或循环来做到这一点?
谢谢。
答案 0 :(得分:1)
您可以将标准存储在数组中,然后过滤此数组以消除空白值。
criterions = [a,b,c,d,e,f,g,h];
citerions = criterions.filter(
function(value){
return value != "";
},
criterions
);
然后你可以遍历标准数组来构建你的搜索
答案 1 :(得分:0)
将搜索条件存储到包含条件和值的数组对象。我们可以过滤掉不是空的对象,然后查询它的密钥。
let data = [{a: 1}, {b: 2}, {c: ''}, {d: ''}];
data = data.filter((d)=>Object.values(d)[0]); [{a: 1}, {b: 2}]
data = data.map((d)=>Object.keys(d)[0]); // ['a', 'b']
// queries for data, ['a', 'b']