Ruby练习题:从给定movies哈希数组筛选生成great_movies数组
问题排查
- 你的实现方向走偏了:题目要求最终得到的是哈希数组,不需要自定义Movies类生成实例对象,额外定义类反而会让最终结果的类型不符合要求。如果你一定要练习刚学的类用法,最后也需要把实例的title和boxart属性取出拼装成新哈希才能符合输出要求,属于冗余操作,本题不需要这么做。
- 筛选规则要注意:题目要求rating大于3,评分等于3的条目要排除,不需要保留。
正确实现代码
直接使用Ruby数组自带的select+map链式调用即可完成需求:
# 给定的初始movies数组代码保持不变 # 先过滤出评分大于3的条目,再转换结构只保留需要的字段 great_movies = movies.select { |movie| movie["rating"] > 3 } .map { |movie| { "title" => movie["title"], "boxart" => movie["boxart"] } } p great_movies
输出结果验证
执行后输出的内容完全符合题目要求:
[{"title"=>"Die Hard", "boxart"=>"http://cdn-0.nflximg.com/images/2891/DieHard.jpg"}, {"title"=>"The Chamber", "boxart"=>"http://cdn-0.nflximg.com/images/2891/TheChamber.jpg"}]
内容的提问来源于stack exchange,提问作者Philip Jobe
相关产品推荐
相关产品推荐

