【问题标题】:In ruby, how can I convert a function's response/results into an array?在 ruby​​ 中,如何将函数的响应/结果转换为数组?
【发布时间】:2015-05-21 14:13:10
【问题描述】:

在 ruby​​ 中,如何将函数响应转换为数组以供以后使用?

array = []
def function (subject1)
    results = client.get('/subjects', :genre => subject1)
    results.each { |r| puts r.title }
    array << r.title
end

function(subject1)

我的代码与上面类似。但是,我的结果从未存储。请并感谢您的帮助:)

【问题讨论】:

  • results = client.get(...) 返回到results 是什么?它已经是一个数组了吗?它至少是可枚举的,因为你在做results.each...
  • 尝试将results.map(&amp;:title) 作为最后一行来代替...each 和array &lt;&lt;... 这将返回一个Array 来自titles 的所有titles,所以实际上它可能是1 行@ 987654331@ 将得到相同的结果。您只需将其存储在变量a = function(subject1)
  • 是的,client.get('...') 变成了我通过选择类型中的主题来限制的真实结果。 @lurker
  • 好的,我现在就试试@engineersmnky
  • results.each { |r| array

标签: ruby arrays function store


【解决方案1】:

每个方法都会遍历每个元素,而 map 本身会返回一个数组。

def function(subject1)
    results = client.get('/subjects', :genre => subject1)
    results.map { |r| r.title }
end

function(subject1)

【讨论】:

  • 所以稍后调用数组我会放 results.map 吗?
  • 您可以将结果保存到变量中,例如response = function(subject1)
【解决方案2】:

“我的结果从不存储” - 然后存储结果:

result = function(subject1)

【讨论】:

    【解决方案3】:

    或者你可以让数组成为一个全局变量

    $array = []
    def function (subject1)
      results = client.get('/subjects', :genre => subject1)
      results.each { |r| $array << r.title }
    end
    
    function(subject1)
    

    或者你可以这样做

    array = []
    def function (subject1)
      results = client.get('/subjects', :genre => subject1)
      results.each { |r| puts r.title }
    end
    
    array = function(subject1)
    

    【讨论】:

      猜你喜欢
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      相关资源
      最近更新 更多