颠倒ruby中数组的顺序

Ell*_*iot 34 ruby

[12,16,5,9,11,5,4]打印了以下数组:12,16,5,9,11,5,4.

我想要它打印: 4,5,11,9,5,16,12

当我array.reverse打印时:

4,5,11,9,5,61,21
Run Code Online (Sandbox Code Playgroud)

它颠倒了个人数字 - 任何想法我怎么能阻止它?

Sea*_*ill 75

irb(main):001:0> a = [12,16,5,9,11,5,4]
=> [12, 16, 5, 9, 11, 5, 4]
irb(main):002:0> a.reverse
=> [4, 5, 11, 9, 5, 16, 12]
Run Code Online (Sandbox Code Playgroud)

我没看到你所看到的.

编辑:扩展Ben注意到的,你可能正在翻转一个字符串.

irb(main):005:0> "12,16,5,9,11,5,4".reverse
=> "4,5,11,9,5,61,21"
Run Code Online (Sandbox Code Playgroud)

如果必须以这种方式反转字符串,则应执行以下操作:

irb(main):008:0> "12,16,5,9,11,5,4".split(",").reverse.join(",")
=> "4,5,11,9,5,16,12"
Run Code Online (Sandbox Code Playgroud)


Ben*_*ini 15

听起来你的数组实际上是一个String


jjo*_*son 5

您是否想将列表反转到位?如果是这样,那么执行以下操作:

>> arr = [12,16,5,9,11,5,4]
=> [12, 16, 5, 9, 11, 5, 4]
>> arr.reverse!
=> [4, 5, 11, 9, 5, 16, 12]
>> arr
=> [4, 5, 11, 9, 5, 16, 12]
Run Code Online (Sandbox Code Playgroud)

否则:

>> arr_rev=arr.reverse
=> [4, 5, 11, 9, 5, 16, 12]
>> arr_rev
=> [4, 5, 11, 9, 5, 16, 12]
Run Code Online (Sandbox Code Playgroud)


Rub*_*tic 5

如果您的数组是实际的字符串,请尝试以下操作:

"12,16,5,9,11,5,4".split(',').reverse
Run Code Online (Sandbox Code Playgroud)

希望能解决您的问题!