在 Ruby 中使用 for 循环检索数据
Retrieve data using for loop in Ruby
我对在 Ruby 中使用 foreach
循环有疑问。
我想显示文档,我正在使用 foreach
循环来显示这些文档。 returns data["response"]["docs"][i]["topic"]
中的 i
变量出错,这是我正在迭代的 JSON 字符串。
我不明白这是为什么。谁能告诉我我做错了什么?
如果我只是做 data["response"]["docs"][0]["topic"]
它工作正常,但不适用于 i
。这是为什么?
<%
(0..10).each do |i|
%>
<%= i %> <br/>
<%= data["response"]["docs"][i]["topic"] %>
<%
end
%>
我的问题是,data["response"]["docs"]
中有多少项?正好有11个吗?无论哪种方式,我都会改用以下代码:
<% data["response"]["docs"].each_with_index do |item, index| %>
<%= index %>
<br/>
<%= item["topic"] %>
<% end %>
无论有多少(无论是 1 个文档还是 20 个文档),这都会遍历 data["response"]["docs"]
,并将值存储在名为 item
的变量中。 each_with_index
函数也为您提供了索引,存储在 index
中,因此您可以稍后显示它。如果您只想要前 11 个,请使用:
<% data["response"]["docs"].first(11).each_with_index do |item, index| %>
这将最多抓取 11 个文档项目。
很难判断可能出了什么问题,因为您没有发布错误,但如果您使用的是 10 元素数组,您想要做的是:
(0..9).each do |i|
对于基于 0 的索引,您应该只使用 0-9 的范围,而不是 0-10。您可能会遇到错误,因为您正在尝试访问不存在的元素(即索引 10)。
更好的是:
<% data["response"]["docs"].each do |document| %>
<%= document["topic"] %>
<% end %>
或者如果您需要打印索引:
<% data["response"]["docs"].each_with_index do |document, index| %>
<%= index %> <br/>
<%= document["topic"] %>
<% end %>
我对在 Ruby 中使用 foreach
循环有疑问。
我想显示文档,我正在使用 foreach
循环来显示这些文档。 returns data["response"]["docs"][i]["topic"]
中的 i
变量出错,这是我正在迭代的 JSON 字符串。
我不明白这是为什么。谁能告诉我我做错了什么?
如果我只是做 data["response"]["docs"][0]["topic"]
它工作正常,但不适用于 i
。这是为什么?
<%
(0..10).each do |i|
%>
<%= i %> <br/>
<%= data["response"]["docs"][i]["topic"] %>
<%
end
%>
我的问题是,data["response"]["docs"]
中有多少项?正好有11个吗?无论哪种方式,我都会改用以下代码:
<% data["response"]["docs"].each_with_index do |item, index| %>
<%= index %>
<br/>
<%= item["topic"] %>
<% end %>
无论有多少(无论是 1 个文档还是 20 个文档),这都会遍历 data["response"]["docs"]
,并将值存储在名为 item
的变量中。 each_with_index
函数也为您提供了索引,存储在 index
中,因此您可以稍后显示它。如果您只想要前 11 个,请使用:
<% data["response"]["docs"].first(11).each_with_index do |item, index| %>
这将最多抓取 11 个文档项目。
很难判断可能出了什么问题,因为您没有发布错误,但如果您使用的是 10 元素数组,您想要做的是:
(0..9).each do |i|
对于基于 0 的索引,您应该只使用 0-9 的范围,而不是 0-10。您可能会遇到错误,因为您正在尝试访问不存在的元素(即索引 10)。
更好的是:
<% data["response"]["docs"].each do |document| %>
<%= document["topic"] %>
<% end %>
或者如果您需要打印索引:
<% data["response"]["docs"].each_with_index do |document, index| %>
<%= index %> <br/>
<%= document["topic"] %>
<% end %>