首頁 >web前端 >js教程 >如何在 JavaScript 中使用點表示法字串存取嵌套物件屬性?

如何在 JavaScript 中使用點表示法字串存取嵌套物件屬性?

Susan Sarandon
Susan Sarandon原創
2024-11-30 02:19:12607瀏覽

How to Access Nested Object Properties Using Dot Notation Strings in JavaScript?

透過點表示法字串存取物件子屬性

處理巢狀物件時,存取深埋的屬性可能很麻煩。使用字串點表示法確定實現此目的的理想方法讓許多開發人員感到困惑。

考慮一個定義如下的物件:

var r = { a: 1, b: { b1: 11, b2: 99 } };

要存取b2 的值,通常可以使用:

r.b.b2
r['b']['b2']

但是,定義像var s = "b .b2" 這樣的字串並嘗試存取r[s]否則r.s 將會失敗。

解決方案:

一種方法涉及建立一個自訂函數,該函數將字串按點分割並迭代檢索所需的屬性。一個簡單的範例是:

function getDescendantProp(obj, desc) {
    var arr = desc.split(".");
    while (arr.length && (obj = obj[arr.shift()]));
    return obj;
}

console.log(getDescendantProp(r, "b.b2")); // Outputs 99

此函數根據點分隔的路徑遞歸地降低物件層次結構,傳回最終值。值得注意的是,它也可以使用點表示法處理存取數組索引:

console.log(getDescendantProp({ a: [1, 2, 3] }, 'a.2')); // Outputs 3

以上是如何在 JavaScript 中使用點表示法字串存取嵌套物件屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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