JavaScript のパターン マッパー

Feb 25 2023
JavaScript では、パターン マッパーは、マッピング関数を使用して、あるオブジェクト セットを別のオブジェクト セットにマップするために使用されるデザイン パターンです。このパターンの目的は、オブジェクト マッピングのロジックをアプリケーションの残りの部分から分離することで、コードを簡素化し、よりモジュール化することです。

JavaScript では、パターン マッパーは、マッピング関数を使用して、あるオブジェクト セットを別のオブジェクト セットにマップするために使用されるデザイン パターンです。このパターンの目的は、オブジェクト マッピングのロジックをアプリケーションの残りの部分から分離することで、コードを簡素化し、よりモジュール化することです。

パターン マッパーは通常、ソース オブジェクトまたは配列と、ソース オブジェクトをターゲット オブジェクトにマッピングする方法を指定するマッピング オブジェクトまたは配列という 2 つの配列またはオブジェクトを入力として受け取ります。マッピング オブジェクトは通常、キーと値のペアで構成されます。キーはソース オブジェクトのプロパティ名またはフィールド名を表し、値はターゲット オブジェクトのプロパティ名またはフィールド名を表します。

パターン マッパーはマッピング オブジェクトを使用して、ソース オブジェクトのプロパティを反復処理し、それらをターゲット オブジェクトの対応するプロパティにマッピングすることにより、ソース オブジェクトをターゲット オブジェクトに変換します。結果として得られるターゲット オブジェクトは、アプリケーションの残りの部分で使用できます。

パターン マッパーは、map()、reduce()、forEach() などの組み込み JavaScript 関数の使用や、Lodash や Underscore.js などの外部ライブラリの使用など、さまざまな方法で実装できます。

以下は、パターン マッパーを JavaScript で使用する方法の例です。

本を表すソース オブジェクトの配列があるとします。

const books = [
  { title: 'The Great Gatsby', author: 'F. Scott Fitzgerald', year: 1925 },
  { title: 'To Kill a Mockingbird', author: 'Harper Lee', year: 1960 },
  { title: '1984', author: 'George Orwell', year: 1949 }
];

const mapping = {
  title: 'title',
  author: 'author',
  published: 'year'
};

const targetObjects = books.map(book => ({
  title: book[mapping.title],
  author: book[mapping.author],
  published: book[mapping.published]
}));

[
  { title: 'The Great Gatsby', author: 'F. Scott Fitzgerald', published: 1925 },
  { title: 'To Kill a Mockingbird', author: 'Harper Lee', published: 1960 },
  { title: '1984', author: 'George Orwell', published: 1949 }
]