Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menetapkan Sifat Objek JavaScript Bersarang Menggunakan Nama Rentetan?

Bagaimanakah Saya Boleh Menetapkan Sifat Objek JavaScript Bersarang Menggunakan Nama Rentetan?

Patricia Arquette
Lepaskan: 2024-12-24 11:02:14
asal
365 orang telah melayarinya

How Can I Set Nested JavaScript Object Properties Using String Names?

Menetapkan Sifat Objek Bersarang Menggunakan Nama Rentetan dalam JavaScript

Dalam JavaScript, mengakses dan mengubah suai sifat objek adalah penting untuk mengurus data anda. Walau bagaimanapun, bagaimana jika anda hanya diberikan nama harta sebagai rentetan dan bukannya urutan kunci langsungnya? Ini boleh timbul dalam senario di mana sifat dijana atau diterima secara dinamik sebagai input pengguna.

Pertimbangkan objek berikut:

var obj = {};
Salin selepas log masuk

Dan nama sifat:

var propName = "foo.bar.foobar";
Salin selepas log masuk

Untuk menetapkan nilai obj.foo.bar.foobar, secara tradisinya anda akan menggunakan yang berikut sintaks:

obj.foo.bar.foobar = "hello world";
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini memerlukan melintasi setiap sifat dalam rantaian secara manual, yang boleh menjadi membosankan dan terdedah kepada ralat, terutamanya untuk sifat bersarang dalam.

Sifat Rekursif Fungsi Tugasan

Untuk menangani cabaran ini, fungsi rekursif yang dipanggil tugaskan boleh dilaksanakan untuk mudahkan proses tugasan:

function assign(obj, prop, value) {
    if (typeof prop === "string")
        prop = prop.split(".");

    if (prop.length > 1) {
        var e = prop.shift();
        assign(obj[e] =
                 Object.prototype.toString.call(obj[e]) === "[object Object]"
                 ? obj[e]
                 : {},
               prop,
               value);
    } else
        obj[prop[0]] = value;
}
Salin selepas log masuk

Fungsi ini mengambil objek (obj), nama sifat (prop) sebagai rentetan dan nilai (nilai) untuk ditetapkan pada harta itu. Ia merentasi hierarki objek secara rekursif dan menetapkan sifat yang sesuai kepada nilai yang ditentukan.

Penggunaan

Untuk menetapkan nilai obj.foo.bar.foobar menggunakan tugasan fungsi:

var obj = {},
    propName = "foo.bar.foobar";

assign(obj, propName, "Value");
Salin selepas log masuk

Kod ini akan mencipta sifat bersarang yang diperlukan dan menetapkan nilai obj.foo.bar.foobar kepada "Nilai".

Dengan menggunakan fungsi penetapan sifat rekursif, anda boleh mengakses dan mengubah suai sifat objek bersarang secara dinamik dalam JavaScript menggunakan nama rentetan, menyediakan penyelesaian yang fleksibel dan berskala untuk struktur data yang kompleks .

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Sifat Objek JavaScript Bersarang Menggunakan Nama Rentetan?. 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