😕

JavaScriptでアルファベットを1〜26の数字に変換する方法

2020/10/01に公開

今回は、JavaScriptで配列内にあるアルファベットの文字列を1〜26の数字に変換する方法を紹介したいと思います。

例えば、

['a'] => [1]
['z'] => [26]

となり、配列内に複数の文字列が入っている場合は

['a','b','c'] => [1,2,3]

となります。

このように変換できるようにするために、以下のコードが使えます。

const a = ['a','b','c']
const alphabet = "abcdefghijklmnopqrstuvwxyz"
b = a.map((str) => alphabet.indexOf(str) + 1)

console.log(b) // [1,2,3]

追記:
const aの配列の文字列に大文字が渡された場合に、大文字は認識されず、0が返ってきてしまいます。

さらに少し応用して、

'hello'

のような文字列が渡されて

[ 8, 5, 12, 12, 15 ]

と返ってくるようにする場合には、上記のコードに.split()を追加して以下のように書きます。

const a = "hello"
const alphabet = "abcdefghijklmnopqrstuvwxyz"
const b = a.split('').map((str) => alphabet.indexOf(str) + 1)

console.log(b); // [ 8, 5, 12, 12, 15 ]

これを更に応用して、配列内に文字列が入っている配列が複数入っている場合についても紹介します。

const a = ["abc","def","ghi"]
const b = a.map((_, index) => {
    const alphabet = "abcdefghijklmnopqrstuvwxyz"
    return a[index].split('').map((str) => alphabet.indexOf(str) + 1)
})

console.log(b);

// [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]

Discussion