gpt4 book ai didi

javascript - 如何使用 Lo-dash 在 _.filter 的回调函数中迭代数组

转载 作者:行者123 更新时间:2023-12-02 16:54:26 24 4
gpt4 key购买 nike

所以我在这里遇到了一些棘手的事情。我有一个 JSON 对象,需要根据用户查询进行过滤。在此 JSON 中,我想过滤掉作为食物数组的 category_of_foods 字段。

早餐项目=

[
{
"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"
]
}
]

使用Lo-Dash library ,当 category_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);
};

该代码对我来说似乎很合乎逻辑,因为它与之前类似,但现在我还在迭代数组以查找真正的匹配项以返回到 _.filter 函数。难道我做错了什么?

最佳答案

您必须向调用者返回一个真值或假值,在本例中为filter。尝试使用 some 代替,它返回一个 bool 值:

return _(element.category_of_foods).some(function(entry){
return entry === category;

如果至少有一个条目匹配,它将返回true

关于javascript - 如何使用 Lo-dash 在 _.filter 的回调函数中迭代数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26291936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com