Bagaimana untuk Menetapkan Sifat Secara Dinamik dalam Objek JavaScript Bersarang?

Linda Hamilton
Lepaskan: 2024-10-31 08:16:29
asal
294 orang telah melayarinya

How to Dynamically Set Properties in Nested JavaScript Objects?

Penugasan Harta Dinamik dalam Objek Bersarang

Menetapkan sifat objek bersarang boleh menjadi tugas yang kompleks dari segi pengaturcaraan, terutamanya apabila laluan dan nilai harta boleh berbeza-beza dari segi kedalaman dan jenis. Untuk memudahkan proses ini, kita boleh mencipta fungsi yang merentasi dan menetapkan sifat secara dinamik dalam objek.

Pelaksanaan Fungsi

<code class="javascript">function set(path, value) {
    var schema = obj; // Moving reference to internal objects within obj
    var pList = path.split('.');
    var len = pList.length;

    for (var i = 0; i < len - 1; i++) {
        var elem = pList[i];
        if (!schema[elem]) schema[elem] = {};
        schema = schema[elem];
    }

    schema[pList[len - 1]] = value;
}</code>
Salin selepas log masuk

Contoh Penggunaan

Pertimbangkan objek bersarang berikut :

<code class="javascript">var obj = {
    db: {
        mongodb: {
            host: 'localhost'
        }
    }
};</code>
Salin selepas log masuk

Untuk menetapkan harta pada laluan tertentu, kita boleh menggunakan fungsi set():

<code class="javascript">set('db.mongodb.user', 'root');</code>
Salin selepas log masuk

Result

Menggunakan fungsi set() kepada objek contoh akan menghasilkan:

<code class="javascript">obj = {
    db: {
        mongodb: {
            host: 'localhost',
            user: 'root'
        }
    }
};</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Sifat Secara Dinamik dalam Objek JavaScript 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
Artikel terbaru oleh pengarang
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!