Javascript 如何使用Lo dash在uz.filter的回调函数中迭代数组
所以我这里有一些棘手的东西。我有一个JSON对象,它需要根据用户查询进行过滤。在这个JSON中,我想过滤掉食物的Javascript 如何使用Lo dash在uz.filter的回调函数中迭代数组,javascript,arrays,json,angularjs,lodash,Javascript,Arrays,Json,Angularjs,Lodash,所以我这里有一些棘手的东西。我有一个JSON对象,它需要根据用户查询进行过滤。在这个JSON中,我想过滤掉食物的category\u字段,它是一个食物数组 breakfastems= [ { "id": 338, "created_at": "2014-10-08T03:32:49.000Z", "user_id": 91, "type_of_meal": "breakfast", "category_of_foods": [ "chees
category\u
字段,它是一个食物数组
breakfastems=
[
{
"id": 338,
"created_at": "2014-10-08T03:32:49.000Z",
"user_id": 91,
"type_of_meal": "breakfast",
"category_of_foods": [
"cheese burger",
"fruit"
]
},
{
"id": 339,
"created_at": "2014-10-08T03:34:43.000Z",
"user_id": 91,
"type_of_meal": "breakfast",
"category_of_foods": [
"chicken burger",
"fruit"
]
}
]
通过使用,当category\u of_foods
字段只是一个字符串而不是一个数组时,我能够使代码正常工作。我现在有以下不返回匹配项的代码:
$scope.showPicturesBreakfast = function(type, term){ // term = "fruit"
function filterBreakfast(category, list){
return _.filter(list, function(element){
return _(element.category_of_foods).forEach( function(entry){
return entry === category; // returns true twice if term is fruit
});
});
}
$scope.breakfastPictures = filterBreakfast(term, breakfastItems);
};
在我看来,代码似乎是合乎逻辑的,因为它与以前类似,只是现在我也在迭代数组以找到真正的匹配项,以返回到
\uuu.filter
函数。我做错什么了吗 在这种情况下,您必须向调用者返回truthy或falsy值,filter
。尝试改用some
,它返回一个布尔值:
return _(element.category_of_foods).some(function(entry){
return entry === category;
如果至少有一个条目匹配,它将返回true