我坚持我的打字过滤功能。
我有一个对象数组:
[
{
"id": 12345,
"title": "Some title",
"complexity": [
{
"slug": "1" // my search term
"name": "easy"
}, {
"slug": "2" // my search term
"name": "middle"
},
{...}
我有一系列允许复杂的字符串:
public allowedComplexityArray:Array<string> = ["1"];
我的任务:我只想显示允许复杂度为“1”的对象。
但不知怎的,我的功能不起作用,我不知道为什么:
allowedMeals = meals.filter(meal => {
return meal.complexity.every(complexityObj => that.allowedComplexityArray.indexOf(complexityObj.slug) > -1)
});
答案 0 :(得分:4)
尝试:
let allowedMeals = data.filter(meal => {
return meal.complexity.findIndex(complexityObj =>
allowedComplexityArray.findIndex(m => m == complexityObj.slug) > -1) > -1
});
我在findIndex
子句中使用filter
而不是return
,所以每次都不需要扫描整个数组。