Я пишу функцию, которая будет делать серию логических тестов на входе. Я использую библиотеку lodash. Поэтому для этого конкретного примера, если есть ID = 123ABCZ, он должен содержать один из элементов.javascript функция уменьшения не работает логика
_.contains(list, obj.id) && _.contains(list, item)
У меня есть только один объект в настоящее время (в item_arr) там, но иногда у меня много, поэтому я есть временный OBJ, который сведен. если я перейду в ['123ABCZ', 'apple'], он должен вернуть true, но это не так. Он также должен возвращать true, если идентификатор тоже отсутствует. Я не могу понять, где логика пошла не так!
function include_test(list){
var item_arr = [{id: '123ABCZ', item: ['apple', 'pear', 'grape', 'lemon', 'lime']}];
var functionizer = function(obj){
var func_arr = _.map(obj.item, function(item){
return function(){
if(_.contains(list, obj.id)
return _.contains(list, obj.id) && _.contains(list, item);
return true;
};
});
return func_arr;
};
var temp = _.flatten(_.map(item_arr, function(item){
return functionizer(item);
}));
var result = _.reduce(temp, function(acc, func){
acc = acc || func();
return acc;
}, false);
return result;
}
Функционалист возвращает массив функций. в моем примере он возвращает _.contains (list, obj.id) && _.contains (list, item); для каждой итерации предметов. Я только получаю «неопределенный; когда я пытаюсь запустить ваш пример. – TorusTorus
Каков результат, который вы получаете в своем примере: false или undefined или error? – pwnyexpress
Я получал ложь, но сейчас что-то вроде работает ... Я думаю, что что-то происходит с if (_. Contains (list, obj.id)). Когда я вхожу в объект obj.id, который я знаю, он никогда не входит в оператор if ... – TorusTorus