JavaScriptでアルファベットをギリシャ文字に変換する方法
問題の概要
大文字の英語アルファベットで構成される文字列 str を唯一の引数として受け取り、ギリシャ文字へ変換するJavaScript関数を作成します。
英語とギリシャ文字の対応関係は以下の通りです。
A=α(Alpha) B=β(Beta) D=δ(Delta) E=ε(Epsilon) I=ι(Iota) K=κ(Kappa) N=η(Eta) O=θ(Theta) P=ρ(Rho) R=π(Pi) T=τ(Tau) U=μ(Mu) V=υ(Upsilon) W=ω(Omega) X=χ(Chi) Y=γ(Gamma)
ギリシャ文字へのマッピングが存在するアルファベットは対応するギリシャ文字に置き換え、マッピングが存在しない場合は元の英字をそのまま残した新しい文字列を生成します。
入出力例
たとえば、関数への入力が次の場合を考えてみましょう。
入力
const str = 'PLAYING';
出力
const output = 'ρlαγιηg';
この例では「P」「A」「Y」「I」「N」がそれぞれ ρ、α、γ、ι、η に変換され、対応のない「L」と「G」は小文字の英字のまま残ります。
実装コード
以下が実際のコードです。
const str = 'PLAYING';
const convertLang = (str) => {
const map = {
a:'α', b:'β', d:'δ', e:'ε',
i:'ι', k:'κ', n:'η', o:'θ',
p:'ρ', r:'π', t:'τ', u:'μ',
v:'υ', w:'ω', x:'χ', y:'γ'
};
return str.replace(/./g, char => {
if (map[char.toLowerCase()]) {
return char === char.toUpperCase()
? map[char.toLowerCase()]
: map[char];
}
return char.toLowerCase();
});
};
console.log(convertLang(str));
コードの解説
このコードの仕組みを順を追って見ていきましょう。
- 対応表(mapオブジェクト): 英字をキー、ギリシャ文字を値にもつオブジェクトを定義しています。これにより各文字の変換先を高速に参照できます。
- replace(/./g, ...): 正規表現
/./gで文字列内のすべての1文字を走査し、コールバック関数で1文字ずつ処理します。 - 大文字・小文字の判定:
char === char.toUpperCase()で元の文字が大文字かどうかを判定し、対応表から取得したギリシャ文字を返します。 - マッピングがない場合: 対応表に存在しない文字は
toLowerCase()で小文字化して返します。
実行結果
ρlαγιηg
正規表現とオブジェクトによる対応表を組み合わせることで、シンプルかつ効率的に文字変換を実現できます。この手法は、ひらがな・カタカナ変換やローマ字変換など、ほかの文字種変換にも応用可能です。
-
JavaScriptで文字列を日付に変換する方法
日付を表すのに最もおすすめの形式は「yyyy-mm-dd」です。これはISO 8601(国際標準規格)に準拠した形式で、国や地域による表記の違いによる混乱がなく、誰にとっても分かりやすいのが特徴です。JavaScriptでは、この形式の文字列からDateオブジェクトへの変換はとても簡単です。文字列をそのままDateコンストラクタに渡すだけで、自動的に解析してくれます。基本的な例let a = 2019-08-10; console.log(new Date(a));出力結果上記のコードを実行すると、次のような出力が得られます。Sat Aug 10 2019 05:30:00 GMT+0530
-
JavaScriptで配列をSet(セット)に変換する方法
JavaScriptで配列をSetに変換するときの基本JavaScriptでは、Setオブジェクトを使うことで、配列から重複しない一意の値だけを持つコレクションを簡単に作成できます。SetはES6(ECMAScript 2015)で導入された組み込みオブジェクトで、同じ値が複数回追加されても自動的に1つにまとめられるのが特徴です。変換自体は非常にシンプルで、new Set(配列)と書くだけで完了します。コード例:配列からSetへの変換以下は、重複を含む配列をSetに変換して画面に表示するサンプルコードです。<!DOCTYPE html> <html lang=ja> &