I have the following array [12,16,5,9,11,5,4]
it prints: 12,16,5,9,11,5,4
.
I want it to print: 4,5,11,9,5,16,12
When I
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]
I'm not seeing what you're seeing.
Edit: Expanding on what Ben noticed, you may be reversing a string.
irb(main):005:0> "12,16,5,9,11,5,4".reverse
=> "4,5,11,9,5,61,21"
If you have to reverse a string in that manner, you should do something like the following:
irb(main):008:0> "12,16,5,9,11,5,4".split(",").reverse.join(",")
=> "4,5,11,9,5,16,12"
If your array is an actual string, try this:
"12,16,5,9,11,5,4".split(',').reverse
Hope that solves your problem!
Are you trying to reverse the list in place? If so then do:
>> 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]
Otherwise:
>> arr_rev=arr.reverse
=> [4, 5, 11, 9, 5, 16, 12]
>> arr_rev
=> [4, 5, 11, 9, 5, 16, 12]
arr1 = [12,16,5,9,11,5,4]
i = 0
arr2 = []
arr1.length.times do
arr2 << arr1.reverse[i]
i += 1
end
p arr2
>>[4, 5, 11, 9, 5, 16, 12]
Sounds like your array is actually a String