如何在Ruby中将两个字符串转换为两个数组



我想从哈希中提取键和值。我设法检索到了数据,但格式不对。我正在做以下事情:

@message_count_series = @messages.collect { |p| "[#{p["created_at"]}, #{p["total_cnt"]}]" }
=> ["[2021-12-02 13:21:19.837233, 3]", "[2021-11-20 13:54:54.846048, 3]"] 

我想获得的是:

=> [[2021-12-02 13:21:19.837233, 3], [2021-11-20 13:54:54.846048, 3]] 

只是没有引号(不是字符串(。

我尝试了以下方法:

@message_opened_series = @messages.collect { |p| ["#{p["created_at"]}, #{p["opened_cnt"]}"] }
=> [["2021-12-02 13:21:19.837233, 1"], ["2021-11-20 13:54:54.846048, 0"]] 

这让我更接近了,但现在我的数据被认为是数组中的一个字符串。

以下内容似乎有效,但可能不是很强大的

@message_opened_series = @messages.collect { |p| [DateTime.parse("#{p["created_at"]}"), ("#{p["opened_cnt"]}").to_i] }
=> [[Thu, 02 Dec 2021 13:21:19 +0000, 1], [Sat, 20 Nov 2021 13:54:54 +0000, 0]] 

有更好的方法吗?

@message_opened_series =
@messages.collect { |p| [p["created_at"].to_s, p["opened_cnt"]] }
=> [["2021-12-02 13:21:19.837233", 3], ["2021-11-20 13:54:54.846048", 3]]

最新更新