搜索的的原理代码

来源:互联网 发布:大数据在传媒界的应用 编辑:程序博客网 时间: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
原创粉丝点击