我有日期的哈希:行爲的陣列#拒絕和陣列#地圖iterater
values = {a: Time.now, b: Time.now - 3.days}
# => {:a=>2015-11-24 22:35:56 +0900, :b=>2015-11-21 22:35:56 +0900}
要選擇其日期在一天之內從現在的價值觀,我寫道:
values.reject{|i, v| v < Time.now - 1.day}
# => {:a=>2015-11-24 22:35:56 +0900}
當我使用i[1]
,而不是v
,不工作,
values.reject{|i| i[1] < Time.now - 1.day}
# => NoMethodError: undefined method `<' for nil:NilClass
而與map
,它的工作原理。
values.map{|i| i[1]}
# => [2015-11-24 22:35:56 +0900, 2015-11-21 22:35:56 +0900]
爲什麼Array#reject
的行爲不同?
代碼中沒有數組。 –
您改爲使用Hash.reject。我猜關鍵和價值是綁定到不同的變量。因此,數組的參數銷燬不起作用。 – sschmeck