从哈希获取数组

时间:2018-12-06 12:57:03

标签: ruby-on-rails ruby

我明白了:

[{:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule", 1, 0]

从这里:

event.recurring.map { |key, value| value } 

如何获取array (day)及其值?

5 个答案:

答案 0 :(得分:0)

event.recurring.map { |key, value| value } 

返回

[{:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule", 1, 0]

所以

event.recurring.map { |key, value| value }.first

返回

{:day=>[1, 2, 3, 4, 5]}

如果只需要整数数组,请尝试:

event.recurring.map { |key, value| value }.first[:day]

返回哪个

[1, 2, 3, 4, 5]

答案 1 :(得分:0)

a = [{:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule", 1, 0]
a.first.values.flatten

答案 2 :(得分:0)

让我们假设你有这个:

event_recurring = {k1: {:day=>[1, 2, 3, 4, 5]}, k2: "IceCube::WeeklyRule", k3: 1, k4: 0}

您可以执行以下操作,而不是.map

event_recurring.flat_map { |_, v| v[:day] if v.is_a? Hash }.compact
#=> [1, 2, 3, 4, 5]

答案 3 :(得分:0)

要获取日期数组,您可以这样尝试。

arr = [{:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule", 1, 0]

arr.first[:day]

event.recurring.map { |key, value| value }.first[:day] 

答案 4 :(得分:0)

.m2