Мне нужно создать функцию, которую я передам на сервер базы данных. Возвращенная функция принимает один элемент в качестве параметра и сравнивает этот элемент со списком требований.Внешняя функция возвращает внутреннюю функцию с доступом к значениям из внешней функции
Для этого мне нужна функция генерации функции, которая принимает массив в качестве аргумента и возвращает внутреннюю функцию, которая имеет этот массив, встроенный в нее.
Вот пример:
function create_query (list_of_requirements) {
return function (item) {
var is_match = true
// the next function sets is_match to false if the item fails
list_of_requirements.forEach(check_if_item_meets_requirement)
return is_match
}
}
Пример использования этого:
function search (parsed_user_string) {
db.get(create_query(parsed_user_string)).then(function(results){
show_results(results)
})
}
Как я могу построить перечень требований к внутренней функции?
Похоже, вы уже это делаете. В чем проблема, с которой вы сталкиваетесь? – Barmar
Я вижу два вопроса: вы никогда не вызываете функцию, возвращаемую 'create_query()'. Во-вторых, я предполагаю, что 'db.get()' ожидает, что его аргумент будет строкой запроса, но ваша функция просто возвращает логическое значение. – Barmar
'check_if_item_meets_requirements' также должен находиться в области внутренней функции, поэтому он может присваивать' is_match'. – Barmar