首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ruby on rails中使用循环将键和值推送到空哈希值

如何在Ruby on rails中使用循环将键和值推送到空哈希值
EN

Stack Overflow用户
提问于 2016-11-14 22:05:21
回答 3查看 645关注 0票数 0

我想在我的网页上使用必应搜索结果。为了使用他们的json数据,我找到了这个解决方案:

代码语言:javascript
复制
new_bing_results = bing_results[0][:Web]


result = { }


result[:title] = new_bing_results[0][:Title]
result[:description] = new_bing_results[0][:Description]
result[:url] = new_bing_results[0][:Url]
result[:display_url] = new_bing_results[0][:DisplayUrl]

result[:title1] = new_bing_results [1][:Title]
result[:description1] = new_bing_results [1][:Description]
result[:url1] = new_bing_results [1][:Url]
result[:display_url1] = new_bing_results [1][:DisplayUrl]

result[:title2] = new_bing_results [2][:Title]
result[:description2] = new_bing_results [2][:Description]
result[:url2] = new_bing_results [2][:Url]
result[:display_url2] = new_bing_results [2][:DisplayUrl]

……

代码语言:javascript
复制
          result

我怎样才能创建一个循环,做同样的事情50次,而不需要重复相同的代码。

我试过了,但只得到了错误:

代码语言:javascript
复制
new_bing_results = bing_results[0][:Web]
$i = 0
$num = 50
result2 = {}

while $i < $num do
    result[:title$i]  = new_bing_results[$i][:Title]

.

代码语言:javascript
复制
end

result

问题是,我找不到一个解决方案,可以像在值new_bing_results$i中那样,将我的标题编号添加到key result:$i中

EN

回答 3

Stack Overflow用户

发布于 2016-11-14 22:10:16

这应该能起到作用

代码语言:javascript
复制
result = {}
50.times do |i|
  result["title#{i}".to_sym] = new_bing_results[i][:Title]
  result["description#{i}".to_sym] = new_bing_results[i][:Description]
  result["url#{i}".to_sym] = new_bing_results[i][:Url]
  result["display_url#{i}".to_sym] = new_bing_results[i][:DisplayUrl]
end

50.times将从0运行到49,您可以使用插值来避免重复。

票数 0
EN

Stack Overflow用户

发布于 2016-11-14 22:10:20

您可以使用.to_sym方法。例如:

代码语言:javascript
复制
new_bing_results =  [{Title: "Title"}]
result = {}
result["title#{i}".to_sym] = new_bing_results[i][:Title]
result
=> {:title0=>"Title"}
票数 0
EN

Stack Overflow用户

发布于 2016-11-14 22:11:47

您可以使用字符串插值,然后使用to_sym方法。

代码语言:javascript
复制
    result = {}
    50.times do |n|
      result["title#{n}".to_sym] = new_bing_results[n][:Title]
    end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40590590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档