我收到以下对象
@list =
{
"total": 2,
"items": [
{
"name": "hello",
"values": [
{
"value": "100"
}
]
},
{
"name": "SOME NAME",
"values": [
{
"value": "120"
}
]
}
]
}
我想创建所有值的数组。像[100,120]
这样的东西。我怎么做。
我试过了,
- list.items.each do |item, arr = [], name = []|
-arr.push(item.values); name.push(item.name)
- y = arr
- x = names
在这种情况下,
我一次只得到一个值。在第一次迭代中我有[100]
,在第二次迭代中我有[120]
。我做错了什么。?
更新:我已经编辑了我想要做的事情。谢谢!
y
和x
都应分别包含值和名称数组。
答案 0 :(得分:0)
这里我们需要4件事:
hash[:key]
Array#map
:[1, 2, 3].map { |number| number**2 } # => [1, 4, 9]
Array#flatten
:[[1, 2], [3, 4]].flatten # => [1, 2, 3, 4]
String#to_i
:'44'.to_i # => 44
@list[:items].map { |item| item[:values].map { |value| value[:value] } }.flatten.map(&:to_i)