我得到了这个:
[{:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule", 1, 0]
来自:
event.recurring.map { |key, value| value }
如何获取array (day)
及其值?
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]
a = [{:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule", 1, 0]
a.first.values.flatten
让我们假设您有这个:
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]
要获得day数组,可以这样尝试。
arr = [{:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule", 1, 0]
arr.first[:day]
或
event.recurring.map { |key, value| value }.first[:day]
arr = [{:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule", 1, 0]
arr.grep(Hash).first[:day]
#=> [1, 2, 3, 4, 5]
arr = [1, 0, {:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule"]
arr.grep(Hash).first[:day]
#=> [1, 2, 3, 4, 5]