在 Middleman 中从 JSON 创建 Ruby 数组

Create Ruby array from JSON in Middleman

我想从我用于本地数据的 JSON 文件在 Middleman 中创建一个 Ruby 数字数组。目的是使用各种方法来比较和添加值。我很接近,但我不知道如何将循环内容放入数组中。

我已经阅读了一些相关的问题和文档,但在语法方面我不确定 Middleman 在 JSON.

方面的开始和结束位置

对于下面的示例,我希望生成一个 Ruby 数组,例如: max_bet = [4,8]

JSON的小样本:

[
  {
    "id": "001",
    "wins": 10,
    "totalSpins": 16,
    "maxBet": 4
  },
  {
    "id": "002",
    "wins": 10,
    "totalSpins": 21,
    "maxBet": 8
  }
]

为了手动获得最终结果,我正在输出一个循环的结果,然后手动将其粘贴到一个数组中。

def maxBet
  all = [4,8]
  all.max
end

我在模拟我想要创建的内容时所做的最后一次尝试是打印一个无效数组。好像我需要用 for 循环迭代并将结果推入数组,但我不知道如何。

\[
- data.roulettingale.each do |s|
  =s.maxBet
\,
\]

[4,8,]

如果能帮助我完成这项工作,我将不胜感激。

要么我不明白你的问题,要么:

s = '[
  {
    "id": "001",
    "wins": 10,
    "totalSpins": 16,
    "maxBet": 4
  },
  {
    "id": "002",
    "wins": 10,
    "totalSpins": 21,
    "maxBet": 8
  }
]'
require 'json'
JSON.parse s
#⇒ [
#   {"id"=>"001", "wins"=>10, "totalSpins"=>16, "maxBet"=>4},
#   {"id"=>"002", "wins"=>10, "totalSpins"=>21, "maxBet"=>8}
# ]

希望对您有所帮助。

UPD 生成一个数组,包含maxBets:

data.roulettingale.map { |item| 
  item['maxBet'] 
}
#⇒ => [
#  [0] 4,
#  [1] 8
# ]

data.roulettingale.map { |item| 
  item['maxBet'] 
}.inspect
#⇒ [4, 8]

至select maxBet的最大值:

data.roulettingale.map { |item| 
  item['maxBet'] 
}.max
#⇒ 8