Ruby如何实现筛选价格低于300美元的Hash商品功能
问题根因
- 方法使用错误:
map方法会将块内的返回值(也就是布尔结果)拼接为新数组返回,不会保留原商品对象 - 阈值配置错误:当前判断条件为价格小于30,不符合低于300美元的筛选需求
修复后代码
class ShoesInventory def initialize(items) @items = items end def cheap # select方法会保留块内条件判断为true的原元素,直接返回符合要求的商品Hash集合 @items.select { |item| item[:price] < 300 } end end
调用你提供的示例代码运行后,即可得到期望的输出结果。
内容的提问来源于stack exchange,提问作者Asyraf
相关产品推荐
相关产品推荐

