我有一个调用另一个方法的方法,该方法循环每个项目并将单个对象返回给第一个方法。我不知道如何通过在第二个方法中循环它来返回每个项目。我的伪代码如下。
def process_episodes
items << get_each_episodes_details(episode_doc)
end
def get_each_episodes_details(epi_doc)
base_data = "Some common data related to the episodes"
episodes = get_array_of_episodes_info_from_episode_doc(epi_doc)
#Finally return each episode details with base data
episodes.each do |episode|
return base_data + episode
end
end
我假设return base_data + episode
会在迭代后返回每集。
但它只返回一个项目并从方法块退出。怎么样 我可以返回多个项目,以便如果剧集数组为10项, 然后我需要返回每个项目,以便items数组包含10 个人剧集相关信息。
答案 0 :(得分:0)
您的代码将始终返回第一个重复的剧集,并且一旦您进入循环,就永远不会进入下一集。
您需要对代码进行一些改进。
首先,您必须从第二个函数返回一个数组。
喜欢这个
def get_each_episodes_details(epi_doc)
base_data = "Some common data related to the episodes"
episodes = get_array_of_episodes_info_from_episode_doc(epi_doc)
#Finally return each episode details with base data
episodes.map{|episode| base_data + episode} # this will return an array => [obj1,obj2, obj3...]
end
现在,您的items
将是数组=> [[obj1,obj2..], [x1,x2..]]
然后,您可以致电flatten
上的items
将其展平,这样您就无法获得数组。 items.flatten
希望有帮助:)