Javascript 如何使用id为对象内部的两个不同数组应用条件
这里是Javascript 如何使用id为对象内部的两个不同数组应用条件,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,这里是javascript新手,我在名为service\u types和items的对象中有两个不同的数组。在第一个对象service\u type中,我有如下所示的数组项 "service_types": [ {"id": 3,"name": "Engine Oil"}, {"id": 4,"name": "Castrol"},
javascript
新手,我在名为service\u types
和items
的对象中有两个不同的数组。在第一个对象service\u type
中,我有如下所示的数组项
"service_types": [
{"id": 3,"name": "Engine Oil"},
{"id": 4,"name": "Castrol"},
{"id": 53,"name": "Mobil"}
],
我还有一个叫做items
的对象,它有以下数据
"items": [
{
"id": 1,"name": "Partsandservices","category_ids": null
},
{
"id": 2,"name": "Partsandservices","category_ids": "3,4,53"
},
{
"id": 3,"name": "Shop","category_ids": null
}
]
我想要实现的目标是,当我从下拉列表中单击服务类型
键名称
时,它应该显示与渲染中的类别ID
匹配的项目。我无法将条件添加到service\u type
对象中的id
和items中的category\u id
如何实现这一点?首先,如果您按照Jamiec的建议将category_id的结构更改为array,这将是一件好事
我还建议为categories返回一个空数组,而不是null
完成后,选择类别时,可以查询属于该类别的所有产品:
items.filter(item => (item.category_ids || []).includes(selectedCategoryId)
您没有提到代码如何查找实际的下拉选择,因此我假设您已经知道如何从所选类别获取id
如果这个集合越来越大,我建议创建一个映射结构(key:category,value:item[]
),在这里可以列出一个类别的所有项目。这样可以避免每次更改类别时都查询所有项目。您可以控制该项目对象吗?因为category\u id
应该是一个数组,而不是逗号分隔的字符串@Jamiec是的,我可以控制它,然后开始将其更改为数组-稍后您会感谢我的