什么参数应该传递给其他方法

问题描述 投票:0回答:1

我试图找出应该将什么参数传递给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方法处理,该方法返回一个Hash描述导演的总数。

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

director_ data

   {: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}]}
ruby
1个回答
0
投票

[调用gross_for_director时,您应该传递nds[name_index],因为它需要可以用:movies进行索引的内容。

© www.soinside.com 2019 - 2024. All rights reserved.