gpt4 book ai didi

ruby-on-rails - 围绕关键整数重新排序整数数组

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:39 25 4
gpt4 key购买 nike

我最多有 7 个整数代表一周中的每一天 0 ... 6(星期日 - 星期六)

当前日期 = 3(星期三)。

如何重新排序整数数组,以便最接近星期三的数字 (3) 排在第一位。

例如:

Current Day = 3
Days (input) = [0, 1, 2, 3, 4, 5, 6]
Correct Output = [3, 4, 5, 6, 0, 1, 2]

但数组可能不包含所有日期(例如 current day 可能丢失):

Current Day = 3
Days (input) = [0, 2, 4, 6]
Correct Output = [4, 6, 0, 2]

基本上重新排序数组,使 current day 排在第一位(或它前面的整数)

当前尝试:我研究过使用 a.rotate但我不确定如果 current day 不在数组中如何处理。

我也尝试过使用 min_by 但它不会循环整数

@days.min_by { |x| (x.to_f - Time.now.wday).abs } 

最佳答案

如果您要查找当天之后的日子:

my_array.sort_by{|x| (x-current_day)%7}

如果您要查找的只是第一个数字,只需使用 min_by 而不是 sort_by

还有你的输入:

irb(main):059:0* my_array = [0, 1, 2, 3, 4, 5, 6]
=> [0, 1, 2, 3, 4, 5, 6]
irb(main):060:0> current_day = 3
=> 3
irb(main):061:0> my_array.sort_by{|x| (x-current_day)%7}
=> [3, 4, 5, 6, 0, 1, 2]
irb(main):062:0> my_array = [0, 2, 4, 6]
=> [0, 2, 4, 6]
irb(main):063:0> my_array.sort_by{|x| (x-current_day)%7}
=> [4, 6, 0, 2]

关于ruby-on-rails - 围绕关键整数重新排序整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33301104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com