ネストされた値に基づく配列によるオブジェクトの配列のフィルタリング
オブジェクト内のネストされた値に基づいてオブジェクトの配列をフィルタリングしようとしていますオブジェクト。目標は、ネストされたプロパティの特定の値を持つオブジェクトのみを含む新しい配列を作成することです。
これを実現するには、次の式を使用しました。
let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));
この式元の配列から、姓プロパティが 1 に等しいサブ要素を少なくとも 1 つ持つオブジェクトをフィルタリングします。ただし、出力は期待したものとは異なります。フィルター条件に一致しないサブ要素を削除する代わりに、一致しないものを含むすべてのサブ要素を持つオブジェクトを返します。
フィルター処理を改善するには、マッピング関数を使用できます。フィルター関数の代わりに。これにより、元の配列の各要素を変換して新しい配列を作成できるようになります。変換された要素には、フィルター条件に一致するサブ要素のみが含まれます。
マッピング関数を使用した改良された数式は次のとおりです:
let filteredArray = arrayOfElements.map((element) => { return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)} })
この改良された数式では:
この改良された数式は、姓を持つサブ要素を少なくとも 1 つ持つオブジェクトのみを含む配列を返します。プロパティは 1 に等しく、各オブジェクトには一致するサブ要素のみが含まれます。
以上が特定の値に基づいてオブジェクト内の入れ子になった配列をフィルターする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。