Given the array [1,2,3], is there a method (other than just iteration) to convert it to the integer 123?
Just join the array and convert the resulted string to an integer:
[1,2,3].join.to_i
If you want to avoid converting to and from a String, you can use inject
:
[1,2,3].inject{|a,i| a*10 + i}
#=> 123
Personally I would use
Integer([1,2,3].join, 10) #=> 123
since it has the nice side-effect of throwing an exception that you can deal with if you have non-numeric array elements:
>> Integer([1,2,'a'].join, 10) # ArgumentError: invalid value for Integer: "12a"
Compare this to to_i
:
>> [1,2,'a'].join.to_i #=> 12
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With