Bagaimana untuk Menapis Tatasusunan Objek dengan Tatasusunan Berdasarkan Nilai Bersarang?

DDD
Lepaskan: 2024-10-29 03:08:02
asal
165 orang telah melayarinya

How to Filter an Array of Objects with Arrays Based on Nested Value?

Menapis Tatasusunan Objek dengan Tatasusunan Berdasarkan Nilai Bersarang

Soalan: Bagaimanakah cara saya menapis tatasusunan objek berdasarkan nilai bersarang?

Input:

<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>
Salin selepas log masuk

Output yang Diingini:

<code class="javascript">let filteredArray = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 1}
        ]
    }
];</code>
Salin selepas log masuk

Percubaan Awal:

<code class="javascript">let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));</code>
Salin selepas log masuk

Isu: Pendekatan ini mengembalikan objek dengan semua nama keluarga dan bukannya memotongnya.

Penyelesaian:

<code class="javascript">arrayOfElements.map((element) => {
    return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})</code>
Salin selepas log masuk

Penjelasan:

  • Pendekatan ini menggunakan kaedah map() untuk mengulangi arrayOfElements.
  • Untuk setiap elemen, ia menyebarkan sifatnya ke dalam objek baharu.
  • Ia kemudian menggunakan penapis() pada tatasusunan subElements untuk mengekalkan hanya yang memenuhi syarat (nama keluarga === 1).
  • SubElements yang ditapis kemudiannya digunakan untuk mengatasi tatasusunan subElements asal.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Tatasusunan Objek dengan Tatasusunan Berdasarkan Nilai Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!