颠倒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
它扭转了个人数字 – 任何想法我怎么能阻止它?
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]
我没看到你所看到的。
编辑 :扩展Ben注意到的,你可能正在翻转一个字符串。
irb(main):005:0> "12,16,5,9,11,5,4".reverse => "4,5,11,9,5,61,21"
如果必须以这种方式反转字符串,则应执行以下操作:
irb(main):008:0> "12,16,5,9,11,5,4".split(",").reverse.join(",") => "4,5,11,9,5,16,12"
听起来你的数组实际上是一个String
您是否试图将列表撤消到位? 如果是这样,那么:
>> 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]
除此以外:
>> arr_rev=arr.reverse => [4, 5, 11, 9, 5, 16, 12] >> arr_rev => [4, 5, 11, 9, 5, 16, 12]
如果您的数组是实际字符串,请尝试以下操作:
"12,16,5,9,11,5,4".split(',').reverse
希望能解决你的问题!
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]