You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native如何筛选数组得到餐厅提供的食品分类?

问题解决

报错原因

includes是数组类型的原生方法,你代码中调用includes的主体item.id是数字类型,本身不存在该方法,同时判断逻辑颠倒:你需要判断的是「餐厅支持的分类ID数组」中是否包含当前遍历的分类ID,而非反过来判断分类ID是否包含餐厅的分类数组。

正确实现

直接调整判断逻辑即可,代码如下:

const offeredCategories = categoryData.filter((item) => selectedRestaurant.categories.includes(item.id))

如果后续数据量较大,还可以提前把餐厅的分类ID转成Set提升查询性能:

// 转Set后查询时间复杂度从O(n)降到O(1),适合数据量较大的场景
const categoryIdSet = new Set(selectedRestaurant.categories)
const offeredCategories = categoryData.filter((item) => categoryIdSet.has(item.id))

以上两种写法最终返回的offeredCategories数组都会只包含Burger和Drinks两个符合要求的分类项。


内容的提问来源于stack exchange,提问作者kartoffelkiste

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:54:02