Computer >> Máy Tính >  >> Lập trình >> Javascript

Chuyển đổi đối tượng thành mảng đối tượng trong JavaScript

Giả sử, chúng ta có một đối tượng chứa dữ liệu về một số người như thế này -

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

Chúng tôi được yêu cầu viết một hàm JavaScript có một đối tượng như vậy. Và chức năng của chúng tôi nên tách dữ liệu liên quan đến từng người duy nhất thành các đối tượng của riêng họ.

Do đó, đầu ra cho đối tượng trên sẽ giống như -

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

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

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