我认为这将是一项简单的任务...... 我需要删除我的数组的重复值,例如有3次2018-02-20 13:48:44我只想要其中1个值。
MyTab = [#<Poll id: nil, created_at: "2018-02-20 13:47:15">, #<Poll id: nil, created_at: "2018-02-20 13:48:44">, #<Poll id: nil, created_at: "2018-02-20 13:48:44">, #<Poll id: nil, created_at: "2018-02-20 13:48:44">, #<Poll id: nil, created_at: "2018-02-20 14:25:14">, #<Poll id: nil, created_at: "2018-02-20 14:25:14">, #<Poll id: nil, created_at: "2018-02-20 14:25:14">, #<Poll id: nil, created_at: "2018-02-20 14:32:38">, #<Poll id: nil, created_at: "2018-02-20 14:36:42">, #<Poll id: nil, created_at: "2018-02-20 14:36:42">, #<Poll id: nil, created_at: "2018-02-20 14:40:16">, #<Poll id: nil, created_at: "2018-02-20 15:30:15">, #<Poll id: nil, created_at: "2018-02-20 15:30:15">, #<Poll id: nil, created_at: "2018-03-06 10:24:25">, #<Poll id: nil, created_at: "2018-03-06 10:24:25">]
我已经尝试了这个,但它不起作用:
MyTab.uniq{|x| x.created_at}
感谢您的回答:)。
Ž。
答案 0 :(得分:1)
编辑:好的,我想我能理解为什么如果我尝试使用它会不起作用
a = [[“ first”],[“ second”],[“ first”]]。uniq 它正在工作,所以我将更改为以这种方式放置阵列。
答案 1 :(得分:0)
可能慢一些;但应该工作:
MyTab.uniq { |x| Time.parse(x.created_at).to_i }
答案 2 :(得分:0)
如果您可以直接从模型重写查询,我建议直接在其中执行逻辑。
Poll.select(:created_at).where("#{query_conditions}").distinct
如果不是,我建议@ ben的答案。
答案 3 :(得分:0)
find_by_sql [&#34; SELECT DISTINCT created_at,FROM your_table_name&#34;] 要么 MyTab.flatten! 注意 - 这将使用唯一值
编写MyTab数组