如何从包含嵌套数组的JS对象中提取所有brand值组成新数组
错误原因
Object.values(data) 会返回data对象所有属性的属性值集合,你的data对象仅包含supportPaneltext这一个属性,所以返回结果是[ 包含两个品牌对象的数组 ],属于嵌套数组结构。你直接对这个集合做filter判断item.brand时,遍历到的item是整个品牌数组,自然不存在brand属性,无法得到预期结果。
正确实现
直接取data.supportPaneltext数组遍历提取即可,使用map方法就能拿到所有brand值:
const result = data.supportPaneltext.map(item => item.brand)
执行后result就是你需要的["BMW", "Mercedez"]。
如果需要更健壮的兼容逻辑(比如不确定属性是否存在、可能存在缺失brand的项),可以加一层过滤:
const result = data.supportPaneltext .filter(item => item && item.brand) .map(item => item.brand)
内容的提问来源于stack exchange,提问作者SharePointBeginner
相关产品推荐
相关产品推荐

