Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chuyển đổi đối tượng thành mảng các đố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ư sau:

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

Chúng ta cần viết một hàm JavaScript nhận đối tượng này. Hàm sẽ tách dữ liệu của mỗi người riêng biệt thành các đối tượng riêng.

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

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

Ví dụ

Mã thực hiện:

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

Kết quả

Kết quả trong console:

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