如何按不同条件提取嵌套数据结构中的vertical字段值并汇总
实现方案
核心逻辑是处理两层嵌套数组:外层data数组每个元素包含verticals子数组,需先遍历外层结构,再提取内层子数组的vertical字段值。
场景1:获取所有runType下的vertical值
使用flatMap遍历外层数组,自动合并内层映射得到的结果为一维数组:
const allVerticals = data.flatMap(item => item.verticals.map(vertItem => vertItem.vertical) ) // 输出:["SPINACH", "TOMATO", "ONION", "APPLE", "BANANA", "GRAPES"]
场景2:获取runType为VEGGIES对应的vertical值
先用find筛选出对应类型的外层对象,再遍历其verticals字段取值,添加可选链和默认空数组兼容边界异常:
const veggiesVerticals = data .find(item => item.runType === 'VEGGIES') ?.verticals.map(vertItem => vertItem.vertical) || [] // 输出:["SPINACH", "TOMATO", "ONION"]
场景3:获取runType为FRUITS对应的vertical值
和场景2逻辑一致,仅修改筛选的runType值即可:
const fruitsVerticals = data .find(item => item.runType === 'FRUITS') ?.verticals.map(vertItem => vertItem.vertical) || [] // 输出:["APPLE", "BANANA", "GRAPES"]
内容的提问来源于stack exchange,提问作者Aren Trot
相关产品推荐
相关产品推荐

