Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Menapis Tatasusunan Objek Berdasarkan Tatasusunan Nilai Bersarang?

Bagaimana untuk Menapis Tatasusunan Objek Berdasarkan Tatasusunan Nilai Bersarang?

DDD
DDDasal
2024-10-30 23:46:30796semak imbas

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}
        ]
    }
];

Output yang Diingini:

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

Pendekatan Penapisan Asal:

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

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)}
})

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!

Kenyataan:
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