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

ห่อ property ประเภทสตริงในอ็อบเจ็กต์ด้วยอาร์เรย์ - JavaScript

ใช้ Object.keys(), reduce(), concat() แปลงค่าสตริงเป็นอาร์เรย์เดี่ยว

ตัวอย่างโค้ด

var details = { name: ["John", "David"], age1: "21", age2: "23" },
    output = Object
      .keys(details)
      .reduce((obj, tempKey) =>
        (obj[tempKey] = [].concat(details[tempKey]), obj), {});
console.log(output);

รันด้วยคำสั่ง:

node fileName.js

ชื่อไฟล์: demo302.js

ผลลัพธ์

PS C:\Users\Amit\javascript-code> node demo302.js
{ name: [ 'John', 'David' ], age1: [ '21' ], age2: [ '23' ] }

คำอธิบาย: [].concat(val) แปลงค่าใดๆ เป็นอาร์เรย์ (ถ้าเป็นอาร์เรย์อยู่แล้วคงเดิม ถ้าเป็น primitive ห่อในอาร์เรย์) reduce สร้างอ็อบเจ็กต์ใหม่ (expr, obj) ใช้ comma operator คืน obj