設定巢狀物件屬性可能是一項以程式設計方式複雜的任務,特別是當屬性路徑和值的深度和類型可能不同時。為了簡化這個過程,我們可以建立一個動態遍歷並設定物件內屬性的函數。
<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>
考慮下列巢狀物件:
<code class="javascript">var obj = { db: { mongodb: { host: 'localhost' } } };</code>
要在特定路徑設定屬性,我們可以使用set() 函數:
<code class="javascript">set('db.mongodb.user', 'root');</code>
應用set() 函數到範例物件將產生:
<code class="javascript">obj = { db: { mongodb: { host: 'localhost', user: 'root' } } };</code>
以上是如何動態設定嵌套 JavaScript 物件的屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!