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

แปลงวัตถุเป็นอาร์เรย์ของวัตถุใน JavaScript


สมมติว่าเรามีวัตถุที่มีข้อมูลเกี่ยวกับบางคนเช่นนี้ -

const obj = {
   "Person1_Age": 22,
   "Person1_Height": 170,
   "Person1_Weight": 72,
   "Person2_Age": 27,
   "Person2_Height": 160,
   "Person2_Weight": 56
};

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับวัตถุดังกล่าว และหน้าที่ของเราควรแยกข้อมูลเกี่ยวกับบุคคลที่ไม่ซ้ำกันออกเป็นวัตถุของตนเอง

ดังนั้นผลลัพธ์ของวัตถุข้างต้นควรมีลักษณะดังนี้ −

const output = [
   {
      "name": "Person1",
      "age": "22",
      "height": 170,
      "weight": 72
   },
   {
      "name": "Person2",
      "age": "27",
      "height": 160,
      "weight": 56
   }
];

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const obj = {
   "Person1_Age": 22,
   "Person1_Height": 170,
   "Person1_Weight": 72,
   "Person2_Age": 27,
   "Person2_Height": 160,
   "Person2_Weight": 56
};
const separateOut = (obj = {}) => {
   const res = [];
   Object.keys(obj).forEach(el => {
      const part = el.split('_');
      const person = part[0];
      const info = part[1].toLowerCase();
      if(!this[person]){
         this[person] = {
            "name": person
         };
         res.push(this[person]);
      }
      this[person][info] = obj[el];
   }, {});
   return res;
};
console.log(separateOut(obj));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[
   { name: 'Person1', age: 22, height: 170, weight: 72 },
   { name: 'Person2', age: 27, height: 160, weight: 56 }
]