如何构建包含多个搜索字段的搜索页面?

时间:2017-05-26 08:18:31

标签: javascript jquery search

我有一个搜索页面,它有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'
}

同样,我必须写很多组合。有没有简单的方法或循环来做到这一点?

谢谢。

2 个答案:

答案 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']