Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在对象数组上进行客户端全文搜索_Javascript_Jquery_Arrays_Full Text Search - Fatal编程技术网

Javascript 在对象数组上进行客户端全文搜索

Javascript 在对象数组上进行客户端全文搜索,javascript,jquery,arrays,full-text-search,Javascript,Jquery,Arrays,Full Text Search,我有下面的JavaScript对象数组示例,需要使用户能够使用单词/短语搜索,并返回对象: var items = []; var obj = { index: 1, content: "This is a sample text to search." }; items.push(obj); obj = { index: 2, content: "Here's another sample text to search." }; items.push(obj);

我有下面的JavaScript对象数组示例,需要使用户能够使用单词/短语搜索,并返回对象:

var items = [];
var obj = {
    index: 1,
    content: "This is a sample text to search."
};
items.push(obj);
obj = {
    index: 2,
    content: "Here's another sample text to search."
};
items.push(obj);
使用jQuery的
$.grep
执行搜索可能会很有效,例如对单个单词执行以下搜索:

var keyword = "Here";
var results = $.grep(items, function (e) { 
    return e.content.indexOf(keyword) != -1; 
});
但是,如何在对象的
content
字段中搜索短语?例如,使用
indexOf
搜索短语
另一个文本将不起作用,因为这两个单词不相邻。在jQuery中执行此搜索的有效方法是什么?

如果使用,您可以这样做

var words = phrase.split(' ');
items.where(function(e){
           return words.aggregate(function(state, w){ 
                    return state && e.content.indexOf(w) >= 0;
                  });
},true);

如果它应该至少匹配一个,则将
&&
更改为
|
并将
true
更改为
false
如果卡住了,可以使用vanilla JS。它确实使用并且在较旧的浏览器中不起作用,但是有可用的多边形填充

var项目=[];
var obj={
索引:1,
内容:“这是要搜索的示例文本。”
};
项目推送(obj);
obj={
索引:2,
内容:“这里是另一个要搜索的示例文本。”
};
项目推送(obj);
函数查找(项目、文本){
text=text.split(“”);
返回项目。过滤器(函数(项目){
返回文本。每个(函数(el){
返回项.content.indexOf(el)>-1;
});
});
}
log(find(items,'text'))//两个对象
log(查找(项,'other'))//对象2
log(查找(项,'other text'))//对象2

console.log(find(items,'is text')//对象1
如何
:contains
?谢谢,@GuruprasadRao。
:contains
是否考虑到短语单词不必是连续的,但可以在文本中的任何位置?是的!!查看更多详细信息谢谢@RuneFS。很不错的。该链接要求我登录Wordpress博客。到GitHub的链接已断开:。我可以在哪里下载JS库?它应该在哪里,或者您可以通过npm安装查询JS进行安装