我有一个填充了几个日期的数组
arry = ["06-01-2014", "07-04-2014", "14-01-2014"
"14-04-2014", "16-01-2014" "27-03-2014",
"30-12-2013", "31-03-2014", "27-02-2014"]
我想删除元素6及以上最好有2个不同的数组。
这可能吗?
答案 0 :(得分:3)
随意接受@ JanDvorak的答案,但你也可以这样做
arry = ["06-01-2014", "07-04-2014", "14-01-2014","14-04-2014", "16-01-2014", "27-03-2014","30-12-2013", "31-03-2014", "27-02-2014"]
first_five = arry.shift(5)
#=> ["06-01-2014", "07-04-2014", "14-01-2014", "14-04-2014", "16-01-2014"]
arry
#=> ["27-03-2014","30-12-2013", "31-03-2014", "27-02-2014"]
或非破坏性(维持arry
)
arry = ["06-01-2014", "07-04-2014", "14-01-2014","14-04-2014", "16-01-2014", "27-03-2014","30-12-2013", "31-03-2014", "27-02-2014"]
first_five,rest = arry.partition.with_index{|a,i| i < 5}
first_five
#=> ["06-01-2014", "07-04-2014", "14-01-2014", "14-04-2014", "16-01-2014"]
rest
#=> ["27-03-2014","30-12-2013", "31-03-2014", "27-02-2014"]
arry
#=> ["06-01-2014", "07-04-2014", "14-01-2014", "14-04-2014", "16-01-2014","27-03-2014", "30-12-2013", "31-03-2014", "27-02-2014"]
答案 1 :(得分:1)
另一种方法是使用索引
删除arry.delete_at(5)
正如@Jan Dvorak所提到的,您可以使用
根据索引位置拆分它们arry[0..5] and arry[5..-1]
答案 2 :(得分:0)
这是另一种(非破坏性)方式,但没有什么比@Jan建议的更简单和清晰。
arr = ["06-01-2014", "07-04-2014", "14-01-2014",
"14-04-2014", "16-01-2014", "27-03-2014",
"30-12-2013", "31-03-2014", "27-02-2014"]
[arr.first(5), arr.drop(5)]
#=> [["06-01-2014", "07-04-2014", "14-01-2014", "14-04-2014", "16-01-2014"],
# ["27-03-2014", "30-12-2013", "31-03-2014", "27-02-2014"]]