搜索的的原理代码
来源:互联网 发布:大数据在传媒界的应用 编辑:程序博客网 时间:2024/05/01 04:28
//假定一个在后台获取的数据var ArrayData = [ {'id':'A01','Title':'john'}, {'id':'A02','Title':'rf5643'}, {'id':'A03','Title':'5634'}, {'id':'A04','Title':'3'}, {'id':'A05','Title':'2'}];//获取匹配 方法1 使用indexOf()方法function matchingDataOne(data,pattern){ var john = $.grep(data, function (item) { return item.Title.indexOf("5") > -1 ; }); return john;}方法1 是使用的indexOf来匹配的:当匹配成功的时候 item.Title.indexOf("5) > -1当匹配不成功的时候 item.Title.indexOf("5) = -1//获取匹配 方法2:使用正则表达式function matchingDataTwo(data){ var john = $.grep(data, function (item) { var patternKey = new RegExp("5","gi"); return patternKey.test(item["Title"]); }); return john;}方法2 是使用的正则表达式来匹配的:正则在每次循环的时候要新建一个:var pattern = new RegExp("5" ,"gi");进行匹配pattern.test(item["Title"]);如果成功就返回,否则不返回! 这里要说明的是正则中的g,也就是全局匹配的意思,必须每次遍历都要新建,否则匹配的不完整。或者正在在全局中声明,要把g去掉;比如下面代码var patternKey = new RegExp("5","i");function matchingDataTwo(data,pattern){ var john = $.grep(data, function (item) { return pattern.test(item["Title"]); }); return john;}console.log(matchingDataTwo(ArrayData ,patternKey));//输出两种方法的结果 这种结果相同console.log(matchingDataOne(ArrayData ));console.log(matchingDataTwo(ArrayData ));
0 0