JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで数字を対応するアルファベット・記号に変換する方法

問題

文字列形式の数字が格納された配列を受け取り、対応する文字からなる文字列を返すJavaScript関数を作成する必要があります。数字はアルファベットの逆順に対応しており、a=26、b=25、…、z=1 というマッピングになります。

さらに、記号についても考慮が必要です。「!」は「27」、「?」は「28」、「スペース」は「29」として表現されます。

解決策:コード例

以下がその実装コードです。

const arr = ['5', '23', '2', '1', '13', '18', '6'];

const convertToString = (arr) => {
    let res = '';
    for (let char of arr) {
        if (Number(char) <= 26) {
            res += String.fromCharCode(123 - char);
        } else {
            if (char === '27') res += '!';
            else if (char === '28') res += '?';
            else res += ' ';
        };
    };
    return res;
};

console.log(convertToString(arr));

出力結果

vdyzniu

コードの解説

この関数のポイントは、String.fromCharCode() を使ったシンプルな計算式です。ASCIIコードでは「a」は97、「z」は122に対応しています。そこで「123 - 数字」という式を使うことで、26なら 123−26=97 となり「a」、1なら 123−1=122 となり「z」が出力されます。つまり、逆順の対応関係をわずかな演算だけで実現できるのです。

一方、27以上の数値に対しては、if文による分岐処理を行い、「!」「?」「スペース」へとそれぞれ変換しています。Number() で文字列を数値に変換し、26以下かどうかを判定して処理を振り分けている点も重要です。このように、条件分岐とASCIIコードの性質を組み合わせることで、余計なライブラリや複雑なマッピングテーブルなしに、コンパクトで読みやすい変換処理が書けます。

  1. JavaScriptで数値を丸める・切り捨てる方法|Math.round()とMath.trunc()の違いと使い方

    JavaScriptには、小数を整数へ変換するためのメソッドとして、Math.round() と Math.trunc() の2つが標準で用意されています。Math.round():小数点以下を四捨五入し、最も近い整数に丸めます。例えば「3.5」は「4」に、「3.4」は「3」になります。Math.trunc():小数点以下を単純に取り除き、整数部分だけを残します。「3.9」も「3.1」もどちらも「3」になります。それぞれの特徴を踏まえながら、実際のコード例を見ていきましょう。Math.round() と Math.trunc() の違いメソッド動作例(3.999)Math.round()四捨五

  2. JavaScriptで単語と句読点の配列から文を作成する方法

    問題単語と句読点が格納された配列を受け取り、それらを連結して1つの文を組み立てるJavaScript関数を作成する必要があります。文を組み立てる際は、以下の3つのルールに従う必要があります。単語と単語の間には必ずスペースを1つ入れるカンマと、その左側にある単語との間にはスペースを入れない文末にはピリオド(.)を必ず1つだけ付けるコード例以下が実際のコードです。const arr = [hey, ,, and, ,, you];const buildSentence = (arr = []) => {    let res = ; &nbs