Преобразование объекта в массиве объектов в массив с сохранением других данных - PullRequest
0 голосов
/ 07 марта 2019

У меня есть следующий массив объектов:

const datasubject = 
[
 0: {
    level: "standard 3"
    subject: "English"
    _id: xxx
    coreCompetencies {
       0gHq0U5E667L4EdGbdZ2h: "Grammar",
       9CfalSpzKYIV7AaWKBUwg: "Listening",
       9boIfWUEGdj3WGxJL12XB: "Reading",
       QZ11uYQ8CXkRk0LWenjqj: "Writing",
       ZG1gtxRg6quIOYaTr6CUy: "Speaking"
    }
 },
 1: {...},
 2: {...}
]

Я бы хотел изменить coreCompetencies на массив значений, например ["Grammar", "Listening", "Reading", "Writing", "Speaking"] при сохранении других данных. Я пробовал .map, но запутался, так как он возвращает только объект coreCompetencies без других подробностей. Это то, что я сделал, что вернул только объект coreCompetencies:

const datacore = datasubject.map(value => value.coreCompetencies);

Я бы хотел добиться чего-то подобного:

const datasubject = 
[
 0: {
    level: "standard 3"
    subject: "English"
    _id: xxx
    coreCompetencies ["Grammar","Listening","Reading","Writing","Speaking"]
 },
 1: {...},
 2: {...}
]

Ответы [ 2 ]

3 голосов
/ 07 марта 2019
const datacore = datasubject.map(({coreCompetencies, ...rest})=> {
  return {...rest, coreCompetencies: Object.values(coreCompetencies)}
})
2 голосов
/ 07 марта 2019

Вы должны сделать что-то вроде этого:

const datacore = datasubject.map(value => {
  value.coreCompetencies = Object.values(value.coreCompetencies);
  return value;
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...