Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Lo dash在uz.filter的回调函数中迭代数组_Javascript_Arrays_Json_Angularjs_Lodash - Fatal编程技术网

Javascript 如何使用Lo dash在uz.filter的回调函数中迭代数组

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

所以我这里有一些棘手的东西。我有一个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": [
        "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