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个匹配的搜索词似乎很容易,但如何找到与上述所有词匹配的数组项。
非常感谢任何帮助。
答案 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]);