在ruby中生成特定数组

Mar*_*tin 1 ruby

有没有办法在Ruby中轻松生成这个数组?

[[-5,'-5'],[-4,'-4'],[-3,'-3'],[-2,'-2'],[-1,'-1'],[1,'1'],[2,'2'],[3,'3'],[4,'4'],[5,'5']]
Run Code Online (Sandbox Code Playgroud)

基本上,它包含从-5到5的10个元素,带有整数键和字符串值.

Kyl*_*yle 8

(-5..5).map{ |i| [i, i.to_s] }
Run Code Online (Sandbox Code Playgroud)

didter指出规范不包括0,任何这些都可以工作:

(-5..5).reject{ |i| i == 0 }.map{ |i| [i, i.to_s] }
(-5..5).reject(&:zero?).map{ |i| [i, i.to_s] }
(-5..5).map{ |i| [i, i.to_s] unless i == 0 }.compact
(-5..5).ma­p{ |i| [i, i.to_­s] unles­s i.zer­o? }.com­pact
Run Code Online (Sandbox Code Playgroud)