通过在ruby中的方法内循环返回每个项
我有一个调用另一个方法的方法,该方法循环每个项并将单个对象返回给第一个方法。我不知道如何通过在第二个方法中循环返回每个项目。我的伪代码如下通过在ruby中的方法内循环返回每个项,ruby,Ruby,我有一个调用另一个方法的方法,该方法循环每个项并将单个对象返回给第一个方法。我不知道如何通过在第二个方法中循环返回每个项目。我的伪代码如下 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"
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
def过程
items您的代码将始终返回第一个迭代集,并且不会在您进入循环后立即返回到下一个集
您需要对代码进行一些改进
首先,必须从第二个函数返回一个数组
像这样
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
现在,您的项将是数组的数组=>[[obj1,obj2..],[x1,x2..]
然后,您可以调用items
上的flatten
,将其展平,这样就不会得到数组数组<代码>项目。展平
希望有帮助:)使用而不是每一个
(并且不要从循环中返回)我需要在每一集上循环10次,然后返回每个项目。你能提供一些示例输入和预期输出吗?集数组=[“1”、“2”、“3”、“4”、“5”]base\u info=“HBO返回家园”每集| epi |基本信息+epi结束输出显示如下项目[0]=“HBO回家1”项目[1]=“HBO回家2”项目[2]=“HBO回家3”项目[3]=“HBO回家4”项目[4]=“HBO返乡25不要将其粘贴为评论,而是编辑您的问题!我不想返回项目数组,因为根据我的场景,它没有意义。我需要将每一集的信息和基本数据作为单个项目返回。因此项目数组将包含类似以下项目的内容[0]=“HBO返回家园1”项目[1]=“HBO返回家园2”项目[2]=“HBO返回家园3”项目[3]=“HBO返回家园4”项目[4]=“HBO返回家园5”这是一个伪输出。我的原始场景将把每个情节的元数据作为一个单独的项目。如果我考虑上面评论中提到的伪输出,<>代码>情节>代码>包含什么?