Получить массив из хэша - PullRequest
       8

Получить массив из хэша

0 голосов
/ 06 декабря 2018

Я получаю это:

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

от этого:

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

как я могу получить array (day) и его значения?

Ответы [ 5 ]

0 голосов
/ 06 декабря 2018
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]
0 голосов
/ 06 декабря 2018

Чтобы получить дневной массив, вы можете попробовать вот так.

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

arr.first[:day]

или

event.recurring.map { |key, value| value }.first[:day] 
0 голосов
/ 06 декабря 2018
a = [{:day=>[1, 2, 3, 4, 5]}, "IceCube::WeeklyRule", 1, 0]
a.first.values.flatten
0 голосов
/ 06 декабря 2018

Предположим, у вас есть это:

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]
0 голосов
/ 06 декабря 2018
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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...