JavaScript中如何通过console.log仅输出筛选结果的item字段
问题说明
需求为从购物车数组中筛选出价格低于10000的商品后,仅通过console.log输出商品的item字段内容。当前代码执行后会输出完整的商品对象数组,无法满足需求,原有代码如下:
let cart_items = [{ id: 1, item: "Android Mobile", cost: 7650 }, { id: 2, item: "iphone Mobile", cost: 56000 }, { id: 3, item: "windowes Mobile", cost: 3000 }]; let result = cart_items.filter((value) => value.cost < 10000); console.log(result);
实现方法
Array.filter()的作用是按条件过滤数组,返回的结果是包含完整元素的数组,不会自动提取指定字段。要输出item字段可参考以下两种方式:
- 直接提取字段存储
在filter后链式调用map方法,将筛选出的元素映射为对应的item值,最终result就是item字段组成的数组,直接打印即可:let result = cart_items .filter((value) => value.cost < 10000) .map((value) => value.item); console.log(result); // 输出: ['Android Mobile', 'windowes Mobile'] - 仅打印时提取字段
如果后续逻辑还需要用到商品的id、cost等其他属性,可以保留result为完整对象结构,打印时遍历输出item字段:let result = cart_items.filter((value) => value.cost < 10000); result.forEach(item => console.log(item.item)); /* 输出: Android Mobile windowes Mobile */
内容的提问来源于stack exchange,提问作者kalidasan
相关产品推荐
相关产品推荐

