1
我正在寫一個函數,將對輸入做一系列的邏輯測試。我正在使用lodash庫。所以對於這個特定的例子,如果有一個ID = 123ABCZ,它必須包含其中一個項目。JavaScript減少功能不運行邏輯
_.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;
}
functionizer返回一個函數數組。在我的例子中,它返回_.contains(list,obj.id)&& _.contains(list,item);用於物品的每次迭代。我只是'未定義;當我嘗試運行你的例子。 – TorusTorus
你在你的例子中得到了什麼結果,錯誤還是未定義或錯誤? – pwnyexpress
我得到了錯誤,但現在有些工作正在進行......我認爲if(_。contains(list,obj.id))正在發生某些事情。當我知道它包含了我知道的obj.id時,它永遠不會進入if語句...... – TorusTorus