如何筛选出包含指定size值的嵌套sizeStock数组对应的商品
原代码问题
forEach仅做遍历没有返回值,内层对sizeStock执行filter得到的结果没有被用来做商品筛选的判断条件- 你不需要过滤
sizeStock本身,只需要判断当前商品的sizeStock中是否存在size=40的条目,用存在判断逻辑更合适
正确实现
使用数组的filter方法筛选商品,搭配some方法判断嵌套数组的匹配条件即可:
const filteredProducts = products.filter(product => product.sizeStock.some(item => item.size === 40) )
逻辑说明
- 外层
filter会遍历所有商品,返回所有满足判断条件的商品对象组成的新数组 - 内层
some会遍历当前商品的sizeStock数组,只要有一个条目满足size === 40就返回true,当前商品就会被保留到结果数组中
用你提供的示例数据执行后,filteredProducts中将仅包含id为2的商品,符合需求。
内容的提问来源于stack exchange,提问作者STUCKED
相关产品推荐
相关产品推荐

