如何将整数数组转换为整数

时间:2017-05-15 08:36:32

标签: arrays ruby

我有一个看起来像这样的ruby数组:

[nil, 3, 4, 2]  

我想将它转换为整数,如下:
342

这是否可能,如果是这样,我该怎么做呢?

3 个答案:

答案 0 :(得分:9)

[nil, 3, 4, 2].join.to_i
#=> 342

答案 1 :(得分:2)

[nil, 3, 4, 2].inject(0){|x, d| d ? (x * 10) + d : x}
# => 342

答案 2 :(得分:1)

当你不能简单地遵循操作优先权并且ruby变成lispy - ))

a = [nil, 3, 5, 5]
a.each_with_index.inject(0) { |s, e| s+(e[0].to_i)*(10**(a.length-1-e[1])) }
#=> 355

下面的行是更多a-la-ruby的同义词。感谢@Stefan的指导。

a.reverse.each_with_index.inject(0) { |s, (i, e)| s + i.to_i * 10 ** e }
a.reverse_each.with_index.inject(0) { |s, (i, e)| s + i.to_i * 10 ** e }

上面的代码片段只是将每个元素乘以10的幂并将它们相加。