reversing the order of an array in ruby

前端 未结 5 1173
萌比男神i
萌比男神i 2020-12-29 19:00

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

相关标签:
5条回答
  • 2020-12-29 19:31
    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"
    
    0 讨论(0)
  • 2020-12-29 19:35

    If your array is an actual string, try this:

    "12,16,5,9,11,5,4".split(',').reverse
    

    Hope that solves your problem!

    0 讨论(0)
  • 2020-12-29 19:40

    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]
    
    0 讨论(0)
  • 2020-12-29 19:44
    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]
    
    0 讨论(0)
  • 2020-12-29 19:49

    Sounds like your array is actually a String

    0 讨论(0)
提交回复
热议问题