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

JavaScriptで数値の配列を対応する文字コードのオブジェクトへマッピングする方法

問題

JavaScriptで、数値の配列を引数として受け取る関数を作成する必要があります。配列内の各数値に対して1つのオブジェクトを生成し、そのキーには対象の数値を文字列として、値には String.fromCharCode() によって変換した対応する文字を文字列として格納します。

最終的に、これらのオブジェクトを要素として含む新しい配列を返します。

コード例

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

const arr = [67, 84, 98, 112, 56, 71, 82];
const mapToCharCodes = (arr = []) => {
    const res = [];
    for(let i = 0; i < arr.length; i++){
        const el = arr[i];
        const obj = {};
        obj[el] = String.fromCharCode(el);
        res.push(obj);
    };
    return res;
};
console.log(mapToCharCodes(arr));

出力結果

コンソールへの出力は以下のようになります。

[
    { '67': 'C' },
    { '84': 'T' },
    { '98': 'b' },
    { '112': 'p' },
    { '56': '8' },
    { '71': 'G' },
    { '82': 'R' }
]

コードのポイント

この処理では、String.fromCharCode() メソッドが中心的な役割を果たします。このメソッドは、UTF-16のコードユニット(数値)を受け取り、対応する文字列を返します。例えば、67 は大文字の「C」、112 は小文字の「p」に変換されます。

また、JavaScriptではオブジェクトのプロパティ名は常に文字列として扱われるため、obj[el] のように数値をキーに指定しても、自動的に文字列(例:'67')に変換される点にも注目してください。

map() を使ったより簡潔な書き方

同じ処理は、Array.prototype.map() を使うことでより簡潔に記述できます。

const mapToCharCodes = (arr = []) =>
  arr.map(el => ({ [el]: String.fromCharCode(el) }));

こちらの書き方は、ループ処理や一時変数が不要になり、意図が明確になるため、モダンなJavaScriptのコードスタイルに合っています。

  1. JavaScriptでオブジェクトを新しい配列に変換する方法

    JavaScriptでは、オブジェクトのプロパティやネストされたデータを取り出し、扱いやすい形で新しい配列にフォーマットできます。本記事では、学校(school)オブジェクトに含まれる生徒情報を、文字列形式の配列へ変換する実践的なコード例を紹介します。 ポイントとなるテクニック このサンプルでは、以下の2つのJavaScript機能を活用しています。 分割代入(Destructuring assignment):オブジェクトから特定のプロパティを簡潔に取り出す構文です。 for...of ループ:配列内の各要素を順番に処理するために使用します。 コード例 <!DOCTYPE html

  2. 【JavaScript入門】複数のオブジェクトを1つにマージして単一のオブジェクト配列を作成する方法

    JavaScriptでは、Object.assign()メソッドとスプレッド構文(...)を組み合わせることで、配列内の複数のオブジェクトを1つのオブジェクトに簡単にマージすることができます。 Object.assign()は、1つ以上のコピー元オブジェクトから、コピー先のオブジェクトへすべてのプロパティをコピーするためのメソッドです。スプレッド構文を使って配列の要素を展開することで、各オブジェクトのキーと値が1つのオブジェクトに統合されます。 コード例 以下のコードは、配列内の複数のオブジェクトを単一のオブジェクトにマージする例です。 <!DOCTYPE html> <ht