我试图弄清楚应该将什么参数传递给directors_total
方法,以便返回gross_for_director
的结果。
我尝试插入具有各种错误结果的不同参数。
require 'directors_database'
require 'pp'
require 'pry'
# Write a method that, given an NDS creates a new Hash
# The return value should be like:
#
# { directorOne => allTheMoneyTheyMade, ... }
def directors_totals(nds)
result = {}
name_index = 0
director = nds[name_index][:name]
result[director] = 0
while name_index < nds.length do
result[director] += gross_for_director(gross_total)
name_index += 1
end
result
end
# Find a way to accumulate the :worldwide_grosses and return that Integer
# using director_data as input
def gross_for_director(director_data)
mov_index = 0
gross_total = 0
while mov_index < director_data[:movies].length do
gross_total += director_data[:movies][mov_index][:worldwide_gross]
mov_index += 1
end
gross_total
end
directors_database
方法可以通过directors_totals
方法进行处理,该方法返回一个哈希描述导演的总数。
Failure/Error:
while mov_index < director_data[:movies].length do
gross_total += director_data[:movies][mov_index][:worldwide_gross]
mov_index += 1
end
TypeError:
no implicit conversion of Symbol into Integer
导演数据
{:name=>"Stephen Spielberg",
:movies=>
[{:title=>"Jaws",
:studio=>"Universal",
:worldwide_gross=>260000000,
:release_year=>1975},
{:title=>"Close Encounters of the Third Kind",
:studio=>"Columbia",
:worldwide_gross=>135189114,
:release_year=>1977},
{:title=>"Raiders of the Lost Ark",
:studio=>"Paramount",
:worldwide_gross=>248159971,
:release_year=>1981},
{:title=>"E.T. the Extra-terrestrial",
:studio=>"Universal",
:worldwide_gross=>435110554,
:release_year=>1982},
{:title=>"Schindler's List",
:studio=>"Universal",
:worldwide_gross=>96898818,
:release_year=>1993},
{:title=>"Lincoln",
:studio=>"Buena Vista",
:worldwide_gross=>182207973,
:release_year=>2012}]}
答案 0 :(得分:0)
调用gross_for_director
时,应传递nds[name_index]
,因为它需要可以用:movies
进行索引的内容。