将数字分配给数组中的字母

Blu*_*nd2 3 ruby arrays

我想要做的是使用a array.each将每个字母转换为字母表中的相应字母加九.我知道有可能反对case通过所有26个字母,但这似乎是不必要的.

例如.说数组是:

["N", "O", "T", "H", "I", "N", "G"]

我希望数组成为

["23", "24", "29", "17", "19", "24", "17"]

roh*_*t89 9

这是一种方式:

arr.map {|ch| ch.ord - 'A'.ord + 10}


Arn*_*jar 5

另一个解决方案是使用

plus = 9
nothing = ["N", "O", "T", "H", "I", "N", "G"]
alphabet = ('A'..'Z').to_a
# => ["A", "B", "C", "D", "E", ..., "Z"] 
nothing.map { |d| alphabet.index(d) + 1 + plus }
# => [23, 24, 29, 17, 18, 23, 16] 
Run Code Online (Sandbox Code Playgroud)