要求按照str给的信息检索出匹配arr的数组

img
要求按照str给的信息检索出匹配arr的数组
要求按照str给的信息检索出匹配arr的数组
要求按照str给的信息检索出匹配arr的数组


    const str = "name eq 'ee' and address eq 'aa'";
    let test = str.split(" and ");
    test = test.map((cur) => {
      return cur.split(" eq ");
    });
    const arr = [{ name: "ee", address: "aa" }];
    const res = arr.filter((cur) => {
      return (
        cur[test[0][0]] === test[0][1].replaceAll("'", "") &&
        cur[test[1][0]] === test[1][1].replaceAll("'", "")
      );
    })[0];
    console.log(res);
var str="name eq 'Jill' and address eq 'beijing'";
var arr=[{'name':'Lily','address':'chengdu'},{'name':'Jill','address':'beijing'},{'name':'Jill','address':'shanghai'}]
var reg=new RegExp("name eq '([^']+)' and address eq '([^']+)'","gmi");
console.log(JSON.parse(str.replace(reg ,function(){
    var args=arguments; 
    var targetValue = [];
    for (var i = 0; i < arr.length; i++) {
        if(arr[i].name==args[1] && arr[i].address==args[2]){
            targetValue = arr[i];
            break;
        }
    } 
    return JSON.stringify(targetValue);
    })));

结果如下:

img

类似模糊查询。
遍历arr数组,将每个对象中的name,address去匹配str字符串。
通过 search() 或者indexOf()方法

var str = "123";
console.log(str.search("3") != -1 );  // true

遍历数组咯,首先取出name为jill的值组成的数组,再从中找address为beijing的