JavaScriptで文字列を16進数に変換し、数字部分の合計を求める方法
問題
文字列を受け取り、その中のすべての文字をそれぞれのASCIIコードの16進数値に変換し、さらに16進数文字列に含まれる数字部分(英字は除外)だけを合計して結果を返すJavaScript関数を作成する必要があります。
処理の流れ
- 文字列を1文字ずつに分割する
- 各文字をASCIIコードに変換する
- ASCIIコードを16進数表記の文字列に変換する
- すべての16進数文字列を連結する
- 数字のみを抽出する
- 合計を求めて返す
コード例
以下が実際の実装例です。
const str = "Hello, World!";
const toHexAndSum = (str = '') => {
return str
.split('')
.map(c=>c.charCodeAt())
.map(n=>n.toString(16))
.join('')
.split('')
.filter(c=>'123456789'.includes(c))
.map(d=>parseInt(d))
.reduce((a, b)=>a+b, 0)
};
console.log(toHexAndSum(str));
コードの解説
- split(''):文字列を個々の文字に分解します。
- charCodeAt():各文字のASCIIコード(10進数)を取得します。
- toString(16):数値を16進数表記の文字列に変換します。
- join('') → split(''):すべての16進数文字列を連結した後、再び1文字ずつに分解します。
- filter():「123456789」に含まれる数字だけを残します(「0」や英字は除外されます)。
- reduce():抽出された数字をすべて足し合わせて合計を求めます。
なお、「Hello, World!」の場合、各文字のASCIIコードを16進数に変換して連結すると「48656c6c6f2c20576f726c6421」となり、この中から数字だけを取り出して合計すると91になります。
出力
コンソールには以下のように表示されます。
91
-
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=υ(Upsilo
-
JavaScriptで任意の記法の文字列をキャメルケースに変換する方法
問題 JavaScriptで、通常の文・スネークケース・パスカルケースなどどんな記法で書かれた文字列でも受け取れる関数を作成し、その文字列をキャメルケース(camelCase)に変換することを考えます。 たとえば、関数への入力が次のようになっているとします。 入力 const str = New STRING; 期待される出力 const output = newString; サンプルコード 以下が実際のコードです。 const str = New STRING; const toCamelCase = (str = ) => { return str .re