如何在 JavaScript 中將點號表示法中的字串轉換為包含值的巢狀物件?


假設下面的字串採用點號表示法 −

const keys = "details1.details2.details3.details4.details5"

而下面的陣列如下 −

const firsName = "David";

要轉換為巢狀物件,請結合使用 split(‘.’) 與 map() 的概念。

示例

以下是程式碼 −

const keys = "details1.details2.details3.details4.details5"
const firsName = "David";
var tempObject = {};
var container = tempObject;
keys.split('.').map((k, i, values) => {
   container = (container[k] = (i == values.length - 1 ? firsName : {}))
});
console.log(JSON.stringify(tempObject, null, ' '));

要執行上面的程式,你需要使用以下命令 −

node fileName.js.

這裡,我的檔名是 demo227.js。

輸出

輸出如下 −

PS C:\Users\Amit\JavaScript-code> node demo227.js
{
 "details1": {
  "details2": {
   "details3": {
    "details4": {
     "details5": "David"
    }
   }
  }
 }
}

更新於: 03-10-2020

4K+ 檢視次數

開啟你的職業

完成課程並獲得認證

開始
廣告
© . All rights reserved.