簡體   English   中英

Ruby / Rails:每個do循環都來自另一個循環

[英]Ruby/Rails: each do loop range from another loop

我正在使用以下每個do循環從JSON文件中提取數據並使其在我的網站上可用。

<% data.games.ronedoneb.each do |s| %>

這很好。 我想要做的是指定將要使用的范圍,如下所示:

<% data.games.ronedoneb[(0..5)].each do |s| %>

但是,我要基於另一個JSON文件中的字段更改范圍(0..5),范圍始終是6的塊,因此(0..5),(6..11) ,(12..17)等。

這是我試圖做的如下:

<% data.games.ronedoneb[(<%= ss[:z1] %>..<%= ss[:z2] %>)].each do |s| %>

這行不通,我希望能夠從第一個JSON文件中提取z1和z2結果。

有辦法可以做到嗎? 有什么我想念的嗎?

以下是正在使用的JSON的示例。

JSON 1

"Ar": "1",
"Br": "0",
"Round": "1",
"Game": "3",
"Date": "Thursday, 5 February 2015",
"Day": "1",
"z1": "12",
"z2": "17"

JSON 2

"Game": "1",
"AR": "9",
"Day": "1",
"GPMB": "351",
"DR": "2",
"CSB": "275",
"GPMR": "360",
"AB": "1",
"Round": "1",
"CSp10R": "60",
"GoldR": "13.2",
"DB": "2",
"CSR": "222",
"GoldB": "12.9",
"KDAR": "6.50",
"Blue": "23.7",
"CSat10B": "79",
"KB": "5",
"KDAB": "3.00",
"KR": "4",
"CSat10R": "76"

您不能在使用的地方使用<%= 請嘗試類似:

<% data.games.ronedoneb[(ss[:z1].to_i..ss[:z2].to_i)].each do |s| %>

您可以使用ruby已經內置的可枚舉方法each_slice指定切片長度,它將將數組切成具有該長度的切片,然后將切片傳遞給塊。

您可能需要將json轉換為哈希,但這很容易,

data.games.ronedoneb.each_slice(5) do |slice|
  slice.each do |item|
    #process here
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM