Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธีแปลงสตริง dot notation เป็น nested object พร้อมค่า - JavaScript

สมมติว่าต่อไปนี้คือสตริงของเราในรูปแบบ dot notation:

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

และต่อไปนี้คืออาร์เรย์ของเรา:

const firsName = "David";

เพื่อแปลงเป็น nested object ใช้แนวคิดของ 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"
        }
      }
    }
  }
}