ruby - 从日期数组中删除星期日,但调整以删除星期日

标签 ruby

给定一个连续日期数组 dates = (1..15).map { |num| Date.today + num 如何删除星期日但通过为每个删除的星期日在末尾添加额外的一天来保留原始数组长度?

这是我的尝试,结果导致“堆栈级别太深”异常。

def remove_sundays(dates)
  working_dates = dates.reject(&:sunday?)
  size_diff  = dates.size - working_dates.size
  unless size_diff.zero?
    last_day = working_dates.last
    working_dates = working_dates + ((1..size_diff).map { |num| last_day + num })
    remove_sundays(working_dates)
  else
    working_dates
  end
end

最佳答案

很难。

def remove_sundays(dates)
 dates.each.with_index do |d, i|
   if d.sunday?
     dates[i..-1] = dates[i..-1].map(&:next_day)
   end
 end
end

关于ruby - 从日期数组中删除星期日,但调整以删除星期日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21162264/

相关文章:

ruby - `@something` 在 `rvm use 2.0.0@something` 中代表什么?

ruby - 使用作为字符串存储在数组中的数学符号

ruby - Ruby Anagram算法的时空复杂度

ruby - 如何使用 octokit.rb 获取提交日期

ruby - 全新安装 OSX 10.9.1 在尝试安装 gems 时返回 "undefined method ` path2class'"

ruby-on-rails - WickedPdf 在生产中不显示来自 S3 的远程图像

javascript - 如何在 Rails 中包含并组合所有 Controller 特定的 JavaScript?

ruby - 无法使用 Ruby Rest_client 创建新的 RavenDB 数据库

ruby - 将一张图像合成到另一张图像上时,RMagick 透明度不起作用

Ruby 1.9.3 用 eval 定义 var