Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过在ruby中的方法内循环返回每个项_Ruby - Fatal编程技术网

通过在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”这是一个伪输出。我的原始场景将把每个情节的元数据作为一个单独的项目。如果我考虑上面评论中提到的伪输出,<>代码>情节>代码>包含什么?