ホームページ >ウェブフロントエンド >jsチュートリアル >ネストされた値に基づいて配列を使用してオブジェクトの配列をフィルターする方法は?
質問: ネストされた値に基づいてオブジェクトの配列をフィルタリングするにはどうすればよいですか?
入力:
<code class="javascript">let arrayOfElements = [ { "name": "a", "subElements": [ {"surname": 1}, {"surname": 2} ] }, { "name": "b", "subElements": [ {"surname": 3}, {"surname": 1} ] }, { "name": "c", "subElements": [ {"surname": 2}, {"surname": 5} ] } ];</code>
目的の出力:
<code class="javascript">let filteredArray = [ { "name": "a", "subElements": [ {"surname": 1} ] }, { "name": "b", "subElements": [ {"surname": 1} ] } ];</code>
最初の試行:
<code class="javascript">let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));</code>
問題: このアプローチでは、姓を削除するのではなく、すべての姓を含むオブジェクトが返されます。
解決策:
<code class="javascript">arrayOfElements.map((element) => { return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)} })</code>
説明:
以上がネストされた値に基づいて配列を使用してオブジェクトの配列をフィルターする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。