Создание строк для условия фильтра - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу сделать строковую переменную, в которой много переменных, поэтому я хочу динамически объединить / построить ее и передать переменную в функцию фильтра массивов.

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;
}

1 Ответ

0 голосов
/ 22 февраля 2019

Вы не можете создать строку и ожидать, что движок js узнает, что это код JavaScript.Вы должны сделать функцию, которая делает проверки.Поэтому измените ваш код на функцию, и он зацикливается на вашем объекте и видит, что он совпадает.

var filters = [["location", "Delhi"], ["foo", "bar"]];
const check = obj => filters.every(req => obj[req[0]] === req[1])
let myresult = datasource.filter(check)
...