我想使其中包含许多变量的字符串变量,所以我想动态地连接/构造它,并将该变量传递给Arrays的过滤器函数。
const mytuple = thisobj => thisobj.location === value ;
我想构造上面的变量mytuple
以在下面使用
let myresult = datasource.filter(mytuple);
我正在执行以下操作,但收到错误消息Delhi is not a function
var keys = new Array("location");
var values = new Array("Delhi");
const finaltuple = join(keys, tuples);
let myresult = datasource.filter(finaltuple);
console.log(myresult);
function join(keys, values) {
var joincondition = "";
for(var i = 0; i < keys.length; i++) {
joincondition += "thisobj." + keys[i] + "===" + '"' + tuples[i] + '"';
}
return joincondition;
}
答案 0 :(得分:0)
您无法创建字符串,并且期望js引擎知道它是JavaScript代码。您应该创建一个执行检查的功能。因此,将您的代码更改为一个函数,并在您的对象上循环并查看它是否匹配。
var filters = [["location", "Delhi"], ["foo", "bar"]];
const check = obj => filters.every(req => obj[req[0]] === req[1])
let myresult = datasource.filter(check)