カスタム キーによるネストされたオブジェクトのグループ化
レンダリングを容易にするには、オブジェクトの配列を変換して、特定のキー名を持つオブジェクトをグループ化する必要があります。目的は、以下に示すように、オブジェクトがこれらの指定されたキーによってグループ化された出力を作成することです。
const output = [ { tab: 'Results', sections: [ { section: '2017', items: [ { 'item that belongs here' }, { ... } ], }, }, { tab: 'Reports', sections: [ { section: 'Marketing', items: [ { ... }, { ... } ], }, }, ... ]
実装アプローチ
この変換は次のように実行できます。 Lodash 関数 _.map と _.groupBy.
function groupAndMap(items, itemKey, childKey, predic){ return _.map(_.groupBy(items,itemKey), (obj,key) => ({ [itemKey]: key, [childKey]: (predic && predic(obj)) || obj })); }
を組み合わせた groupAndMap 関数は4 つのパラメータ:
この関数は、まず _.groupBy を使用して itemKey によって項目をグループ化します。次に、グループ化されたオブジェクトを反復処理し、itemKey と childKey を持つ新しいオブジェクトを作成します。 predic パラメータが指定されている場合、ネストされたグループに述語が適用されます。
使用例
この関数を使用して指定されたオブジェクトをグループ化するには、次のように呼び出します。 :
var result = groupAndMap(items,"tab","sections", arr => groupAndMap(arr,"section", "items"));
これにより、項目が「タブ」キーと「セクション」キーでグループ化され、目的の結果が得られます。出力。
以上がLodash を使用してカスタム キーによってネストされたオブジェクトを効率的にグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。