我有以下哈希数组:
{
"itens":
[
{"year": "2018", "right": true},
{"year": "2017", "right": true},
{"year": "2019", "right": false}
]
}
我需要在散列中查找并返回一个包含年份值的数组。仅当键“ right”的值为true时。
[2018, 2017]
答案 0 :(得分:3)
给出h
您的数据结构
h[:itens].select { |item| item[:right] }.map { |item| item[:year].to_i }
如果您希望每年仅一次,则可以添加.uniq
答案 1 :(得分:1)
或者,仅循环一次:
h[:itens].each_with_object([]) { |i, arr| arr << i[:year].to_i if i[:right] }
# => [2018, 2017]
答案 2 :(得分:0)
如何?
# Example dataset
set.seed(123)
tb1 <- tibble(
ds = seq(as.Date("2018-01-01"), as.Date("2018-12-31"), by = "day"),
car = sample(365),
bus = sample(365),
regressor = sample(365)
)
head(tb1)
# Create a dataframe for each time series in a list
ts <- tb1 %>%
gather("type", "y", -ds, -regressor) %>%
split(.$type)
# Forecasting with prophet
library(prophet)
m <- map(ts, prophet)
future <- map(m, make_future_dataframe, periods = 50)
forecast <- map2(m, future, predict)
答案 3 :(得分:0)
您也可以尝试。
data[:itens].keep_if{|a| a[:right]}.map{|b| b[:year].to_i}
# => [2018, 2017]
或者,或者
data[:itens].map{|a| a[:year].to_i if a[:right]}
# => [2018, 2017]