要求按照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);
})));
结果如下:
类似模糊查询。
遍历arr数组,将每个对象中的name,address去匹配str字符串。
通过 search() 或者indexOf()方法
var str = "123";
console.log(str.search("3") != -1 ); // true
遍历数组咯,首先取出name为jill的值组成的数组,再从中找address为beijing的