У меня есть следующие объекты, которые представляют собой опрос, который состоит из набора вопросов и возможных вариантов ответа:
{ "surveyTitle": "Survey 1", "questionText": "Question 1?", "questionId": 1, "offeredAnswerText": "Answer 1", "offeredAnswerId": 1 },
{ "surveyTitle": "Survey 1", "questionText": "Question 1?", "questionId": 1, "offeredAnswerText": "Answer 2", "offeredAnswerId": 2 },
{ "surveyTitle": "Survey 1", "questionText": "Question 2?", "questionId": 2, "offeredAnswerText": "Answer 3", "offeredAnswerId": 3 }
Это происходит из ВНУТРЕННЕГО СОЕДИНЕНИЯ на моем столе, а его нет вотличное состояние для перехода на фронтэнд. Я пытаюсь изменить объект опроса, чтобы сначала можно было сгруппировать вопросы, а затем сопоставить варианты ответов с их вопросами, чтобы они выглядели так:
question: { id: int, text: string, answerOptions: [] }
, где answerOption
состоит из text
и id
:
answerOption: { offeredAnswerId, offeredAnswerText }
У меня есть следующее выражение:
const questions = _.chain(rows).groupBy("id").map((question, i) => ({
id: i,
text: question[0].questionText,
answerOptions: _.map(question, 'offeredAnswerText')
})).value();
, которое до сих пор прекрасно работает,но я хочу, чтобы массив answerOptions
также включал полный объект answerOption
, который является идентификатором и текстом, как показано выше.
Я использую lodash в своем проекте, чтобы помочь с этим.