【问题标题】:How to filter data from array in react-native如何在 react-native 中过滤数组中的数据
【发布时间】:2021-10-04 08:32:15
【问题描述】:
let ing = this.state.getData.menus.map((item) => {
return item.ingredients.filter((i) => {
i.ingredient_name.includes(text);
});
});
console.log(ing);
试图从由数组对象组成的数组中过滤数据。
【问题讨论】:
标签:
javascript
reactjs
react-native
ecmascript-6
react-redux
【解决方案1】:
下一次,请展示您需要过滤的数据样本,这将有助于人们更快地帮助您。
现在,答案。因为我不确定您拥有的数据模型,所以我的回答可能不正确。但是,这就是我想出的。我确信可能有更好的方法,但如果您有多个结果,这可以解决问题。
const search = 'onions';
const recipes = [{
'recipe_name': 'pasta',
'ingredients': [{
'ingredient_name': 'garlic',
'ingredient_qty': 1
}, {
'ingredient_name': 'pasta',
'ingredient_qty': 200
},
{
'ingredient_name': 'parmegan',
'ingredient_qty': 50
}
]
},
{
'recipe_name': 'soup',
'ingredients': [{
'ingredient_name': 'potatos',
'ingredient_qty': 2
},
{
'ingredient_name': 'onions',
'ingredient_qty': 0.5
},
{
'ingredient_name': 'water',
'ingredient_qty': 250
}
]
}
];
const ing = recipes.flatMap((x, i) => {
const indexes = [];
const temp = x.ingredients.filter((i => i.ingredient_name === search));
if (temp.length > 0) {
indexes.push(i)
}
return (
indexes.flatMap(i => recipes[i])
)
});
console.log(ing);