Уменьшить массив JSON до JSON объекта - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть данные как

data = {
  name: "charles",
  id: "1",
  education: [
    {"class": "X","marks": 223,"percentage": "59%"},
    {"class": "IX","marks": 223,"percentage": "59%"},
    {"class": "IIX","marks": 223,"percentage": "59%"},
    {"class": "IIIX","marks": 223,"percentage": "59%"}
  ]
}

Мой желаемый результат - разбить на 4 объекта json

{name:"charles",id:"1", education:{"class":"X","marks":223,"percentage":59%}}
{name:"charles",id:"1", education:{"class":"IX","marks":223,"percentage":59%}}

Может кто-нибудь дать мне знать, как этого достичь?

Я успешно зацикливаюсь и создаю каждый объект индивидуально следующим образом:

this.data.education.forEach( class => {
        const newData: any = {};
        newData.name= data.name;
        newData.id= data.id;
        newData.education = class ;
array.push(newData);
});

I am looking for any simplist way of achieving it?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019
const newData = data.education
               .map(e => ({ id: data.id, name: data.name, education: e}))
0 голосов
/ 23 сентября 2019

Вам нужно извлечь имя и идентификатор и передать все записи массива образования.Надеюсь, это поможет

const data = { name: "charles", id: "1", education: [
    { "class": "X", "marks": 223, "percentage": 59 },
    { "class": "IX", "marks": 223, "percentage": 59 },
    { "class": "IIX", "marks": 223, "percentage": 59 },
    { "class": "IIIX", "marks": 223, "percentage": 59 }
  ]
};
const {name, id} = data;
const response = data.education
  .reduce((result, education) => ([...result, {name, id, education}]), []);

console.log(response)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...