首頁 >web前端 >js教程 >如何使用字串屬性名稱為深度嵌套的 JavaScript 物件賦值?

如何使用字串屬性名稱為深度嵌套的 JavaScript 物件賦值?

DDD
DDD原創
2024-12-15 20:04:17790瀏覽

How to Assign Values to Deeply Nested JavaScript Objects Using String Property Names?

使用字串名稱在JavaScript 中進行動態屬性指派

在JavaScript 中,可能會出現這樣的情況:您可能需要只使用物件的字串表示形式來設定物件的深度嵌套屬性。例如:

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

要將屬性obj.foo.bar.foobar 設定為“hello world”,您可以使用以下函數:

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

此函數迭代巢狀的屬性結構,沿途創建任何丟失的物件。它在最後將最終值指派給所需的屬性。

用法:

assign(obj, propName, "hello world");

執行此賦值後,obj.foo.bar.foobar 將被設定為「hello world」.

以上是如何使用字串屬性名稱為深度嵌套的 JavaScript 物件賦值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn