JS如何从对象数组中筛选出badge含outreach的完整对象
问题原因分析
你当前的写法先调用了map方法对原数组做了转换,直接把每个原对象替换成了badge字段的过滤结果数组,原对象的flowName、image等属性在map步骤就全部丢失了,后续find操作是在转换后的数组里执行,自然只能拿到['outreach']这个结果,拿不到完整原对象。
解决方案
分两种场景选择实现:
- 只需要获取第一个匹配的完整对象,直接用
find方法搭配数组的includes判断即可:
// 返回第一个badge包含outreach的完整对象 const target = state.carData.find(item => item.badge.includes('outreach')) console.log(target)
- 需要获取所有符合条件的完整对象组成的数组,把
find替换为filter即可:
// 返回所有badge包含outreach的完整对象数组 const targetList = state.carData.filter(item => item.badge.includes('outreach')) console.log(targetList)
内容的提问来源于stack exchange,提问作者Muhammad Shah Sawar
相关产品推荐
相关产品推荐

