我想到了几种不同的方法来生成以下数组:[1, 10, 100, 1_000, 10_000, 100_000, 1_000_000]
似乎可以以step
一种优雅的方式使用该函数生成这个数组,但我无法弄清楚。将第二个参数传递给step
函数并表示您想要最后一个值乘以 10 的东西:
0.step(1_000_000, ???).to_a
以下是我到目前为止提出的解决方案:
我不太喜欢这个inject
解决方案,因为我更愿意指定1_000_000
为上限:
(0..6).inject([]) { |memo, number| memo << 10**number; memo }
这是step
我想出的丑陋解决方案:
result = []
0.step(6) {|number| result << 10 ** number}
result
while
循环也感觉不对,但至少它让我指定了上界(而不是 Math.log10(upper_bound)):
result = [1]
while result.last < 1_000_000
result << result.last * 10
end
result
谢谢您的帮助。