【发布时间】:2014-02-21 17:26:13
【问题描述】:
我正在编写一个函数,该函数将对输入进行一系列逻辑测试。我正在使用 lodash 库。因此,对于这个特定示例,如果 ID = 123ABCZ,它必须包含其中一项。
_.contains(list, obj.id) && _.contains(list, item)
我目前只有一个对象(在 item_arr 中),但有时我有很多,这就是为什么我有一个扁平的临时 obj。如果我传入 ['123ABCZ', 'apple'] 它应该返回 true,但事实并非如此。如果 ID 根本不存在,它也应该返回 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;
}
【问题讨论】:
标签: javascript lodash