我能够弄清楚如何获取数组中保存最大值的索引。
示例:
b = [2, 3, 4, 4]
c = [2, 3, 4, 4].max
a=b.each_index.select{|i| b[i]== c}
puts a
=> [2, 3]
我不想得到[2, 3]
;我想去掉括号。此外,我想将 1
添加到索引中以获得:3, 4
。我不想从 0 开始计数。
理想情况下,输出如下:
=> 3, 4
最佳答案
获得所需输出的最简单方法是使用 Array#join方法
即
puts [2, 3].join(', ')
# => 2, 3
如果您想要每个匹配项的序数而不是索引,最简单的方法是将它们映射到索引 + 1
[2, 3].map{ |i| i + 1 }
# => [3, 4]
总而言之,您的赋值和 puts
语句可以写为
a = b.each_index.select{ |i| b[i] == c }.map{ |i| i + 1 }.join(', ')
puts a
=> 3, 4
关于ruby - 有没有办法从代码的输出中取出括号?我想以用户友好的方式打印代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55484675/