哈希数组



这是我下周直播课开始前最后一周的准备工作,我对这个问题很困扰,我希望有人能告诉我哪里出错了。

这是他们想让我们做的:创建一个名为great_movies的新哈希数组,其中仅包含评分大于3的电影,并且每个哈希仅包含标题和boxart信息。程序应该以:p great_movies.

结尾这是我们得到的代码:

movies = [
{
"id" => 70111470,
"title" => "Die Hard",
"boxart" => "http://cdn-0.nflximg.com/images/2891/DieHard.jpg",
"uri" => "http://api.netflix.com/catalog/titles/movies/70111470",
"rating" => 5.0,
"bookmark" => []
},
{
"id" => 654356453,
"title" => "Bad Boys",
"boxart" => "http://cdn-0.nflximg.com/images/2891/BadBoys.jpg",
"uri" => "http://api.netflix.com/catalog/titles/movies/70111470",
"rating" => 2.0,
"bookmark" => [{ "id" => 432534, "time" => 65876586 }]
},
{
"id" => 65432445,
"title" => "The Chamber",
"boxart" => "http://cdn-0.nflximg.com/images/2891/TheChamber.jpg",
"uri" => "http://api.netflix.com/catalog/titles/movies/70111470",
"rating" => 4.0,
"bookmark" => []
},
{
"id" => 675465,
"title" => "Fracture",
"boxart" => "http://cdn-0.nflximg.com/images/2891/Fracture.jpg",
"uri" => "http://api.netflix.com/catalog/titles/movies/70111470",
"rating" => 3.0,
"bookmark" => [{ "id" => 432534, "time" => 65876586 }]
}
]

这就是我到目前为止想到的,但我认为我的方法不对。类电影

def initialize(id, title, boxart, url, rating, bookmark)
@id = id
@title = title
@boxart = boxart
@url = url
@rating = rating
@bookmark = bookmark
end
def id
@id
end
def title
@title
end
def boxart
@boxart
end
def url
@url
end
def rating
@rating
end
def bookmark
@bookmark
end
end

然后我把所有的信息的方式向我们展示了如何,但出于某种原因,它不会让我在这里,我做了四个不同的电影的实例。新的,把所有的信息都放到里面。

任何指向我正确方向的帮助都将是感激的,就像旁注一样,我们最近才了解了整个类方法的事情,这就是为什么我试图这样做,因为至少在我看来,这是最近的事情,他们向我们展示了我正在尝试使用的东西。

我认为创建一个全新的类是相当多余的。您只需要了解数组已经可用的方法。

我不会给你一个直接的解决方案,因为这是家庭作业,所以我不是来帮你做家庭作业的。但是让我们考虑一个数组:

foo = [1, 4, 8, 2, 3, 5]

我可以通过使用select方法并给它一个适当的块来获得大于3的值。

greater_than_3 = foo.select { |x| x > 3 }

现在greater_than_3[4, 8, 5]

如果我想要一个包含这些值的数组,乘以2,该怎么办?我可以使用map方法和另一个块。

greater_than_3 = foo.select { |x| x > 3 }
times_two = greater_than_3.map { |x| x * 2 }

现在times_two[8, 16, 10]

由于这是家庭作业,我将留给你看看如何应用这些方法来解决你的问题,而不是直接给你一个可以复制粘贴的答案。

Ruby Enumerable mixin的文档为Array类提供了这些方法,应该可以帮助你。

最新更新