Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ฉันจะเปลี่ยนสตริงในรูปแบบจุดเป็นวัตถุที่ซ้อนกันด้วยค่า - 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"
    }
   }
  }
 }
}