Bagaimana untuk Menapis Tatasusunan Objek Berdasarkan Tatasusunan Nilai Bersarang?

DDD
Lepaskan: 2024-10-30 23:46:30
asal
794 orang telah melayarinya

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

Menapis Tatasusunan Objek dengan Tatasusunan Nilai Bersarang

Menapis tatasusunan objek berdasarkan nilai bersarang boleh menjadi cabaran biasa. Untuk mengatasinya, mari kita periksa biola yang disediakan:

Susun Input:

let arrayOfElements = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1},
            {"surname": 2}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 3},
            {"surname": 1}
        ]
    },
    {
        "name": "c",
        "subElements": [
            {"surname": 2},
            {"surname": 5}
        ]
    }
];
Salin selepas log masuk

Output yang Diingini:

let filteredArray = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 1}
        ]
    }
];
Salin selepas log masuk

Pendekatan Penapisan Asal:

let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));
Salin selepas log masuk

Walaupun formula ini menapis tatasusunan, ia mengembalikan objek dengan semua nama keluarga dan bukannya mengalih keluarnya.

Diperbaiki Kaedah Penapisan:

arrayOfElements.map((element) => {
  return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})
Salin selepas log masuk

Kaedah ini menggunakan operator hamparan (...) untuk mencipta objek baharu bagi setiap elemen dalam tatasusunan. Di dalam objek baharu, sifat subElements ditapis untuk memasukkan hanya yang mempunyai nilai nama keluarga yang diingini (nama keluarga === 1).

Menggunakan pendekatan ini, anda boleh menapis tatasusunan dengan objek bersarang dalam sewenang-wenangnya dengan menggunakan berulang kali fungsi peta untuk mengakses dan menapis data yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Tatasusunan Objek Berdasarkan Tatasusunan 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!