使用带有jquery的关键字数组的grep数组

时间:2015-04-25 16:24:31

标签: jquery grep

dataArray=[
'red|24|easy|simple',
'red|24|moderate',
'red|24|difficult|hard',
'black|24|difficult|hard',
'black|34|difficult|hard'];

我想找到与我的文本框中的所有单词匹配的所有数组项:

'red hard' - matches middle entry
'bl har 3' - matches last entry
'2 b  d h' - matches 4th entry

使用jquery查找任何1个匹配的搜索词似乎很容易,但如何找到与上述所有词匹配的数组项。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

假设data数组是一个数组数组,您可以通过以下方式使用Array.filter

首先,我们将在空格上分割输入字符串并使用String.indexOf,然后我们将过滤掉条目。

var matches = data.filter(function(str){
   return input.split(/\s+/).every(function(elm){
      return str.toLowerCase().indexOf(elm.toLowerCase()) > -1
   }); 
});

现在,假设可以有多个匹配,我们将过滤后的数组存储在matches中。如果你想取第一个结果,那就做吧

console.log(matches[0]);