const questions = [
{
id: 2,
question: 'Questão 1:',
essay_question: false,
value: '2.00'
},
{
id: 3,
question: 'Questão 2:',
essay_question: false,
value: '1.00'
},
{
id: 4,
question: 'Questão 3:',
essay_question: false,
value: '1.00'
}
];
const options = [
{
id: 1,
option: 'Opção A',
correct: false,
question_id: 2
},
{
id: 4,
option: 'Opção B',
correct: true,
question_id: 2
},
{
id: 6,
option: 'Opção A',
correct: false,
question_id: 3
},
{
id: 7,
option: 'Opção B',
correct: true,
question_id: 3
},
{
id: 9,
option: 'Opção A',
correct: false,
question_id: 4
},
{
id: 12,
option: 'Opção B',
correct: true,
question_id: 4
}
];
const result = questions.map((q) => {
const filteredOptions = options.filter((opt) => opt.question_id === q.id);
return {
...q,
options: filteredOptions.length > 0 ? filteredOptions : null
};
});
// Serializei em JSON para o Ideone mostrar corretamente.
console.log(JSON.stringify(result, null, 2));
Y29uc3QgcXVlc3Rpb25zID0gWwogIHsKICAgIGlkOiAyLAogICAgcXVlc3Rpb246ICdRdWVzdMOjbyAxOicsCiAgICBlc3NheV9xdWVzdGlvbjogZmFsc2UsCiAgICB2YWx1ZTogJzIuMDAnCiAgfSwKICB7CiAgICBpZDogMywKICAgIHF1ZXN0aW9uOiAnUXVlc3TDo28gMjonLAogICAgZXNzYXlfcXVlc3Rpb246IGZhbHNlLAogICAgdmFsdWU6ICcxLjAwJwogIH0sCiAgewogICAgaWQ6IDQsCiAgICBxdWVzdGlvbjogJ1F1ZXN0w6NvIDM6JywKICAgIGVzc2F5X3F1ZXN0aW9uOiBmYWxzZSwKICAgIHZhbHVlOiAnMS4wMCcKICB9Cl07Cgpjb25zdCBvcHRpb25zID0gWwogIHsKICAgIGlkOiAxLAogICAgb3B0aW9uOiAnT3DDp8OjbyBBJywKICAgIGNvcnJlY3Q6IGZhbHNlLAogICAgcXVlc3Rpb25faWQ6IDIKICB9LAogIHsKICAgIGlkOiA0LAogICAgb3B0aW9uOiAnT3DDp8OjbyBCJywKICAgIGNvcnJlY3Q6IHRydWUsCiAgICBxdWVzdGlvbl9pZDogMgogIH0sCiAgewogICAgaWQ6IDYsCiAgICBvcHRpb246ICdPcMOnw6NvIEEnLAogICAgY29ycmVjdDogZmFsc2UsCiAgICBxdWVzdGlvbl9pZDogMwogIH0sCiAgewogICAgaWQ6IDcsCiAgICBvcHRpb246ICdPcMOnw6NvIEInLAogICAgY29ycmVjdDogdHJ1ZSwKICAgIHF1ZXN0aW9uX2lkOiAzCiAgfSwKICB7CiAgICBpZDogOSwKICAgIG9wdGlvbjogJ09ww6fDo28gQScsCiAgICBjb3JyZWN0OiBmYWxzZSwKICAgIHF1ZXN0aW9uX2lkOiA0CiAgfSwKICB7CiAgICBpZDogMTIsCiAgICBvcHRpb246ICdPcMOnw6NvIEInLAogICAgY29ycmVjdDogdHJ1ZSwKICAgIHF1ZXN0aW9uX2lkOiA0CiAgfQpdOwoKY29uc3QgcmVzdWx0ID0gcXVlc3Rpb25zLm1hcCgocSkgPT4gewogIGNvbnN0IGZpbHRlcmVkT3B0aW9ucyA9IG9wdGlvbnMuZmlsdGVyKChvcHQpID0+IG9wdC5xdWVzdGlvbl9pZCA9PT0gcS5pZCk7CiAgcmV0dXJuIHsKICAgIC4uLnEsCiAgICBvcHRpb25zOiBmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoID4gMCA/IGZpbHRlcmVkT3B0aW9ucyA6IG51bGwKICB9Owp9KTsKCi8vIFNlcmlhbGl6ZWkgZW0gSlNPTiBwYXJhIG8gSWRlb25lIG1vc3RyYXIgY29ycmV0YW1lbnRlLgpjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXN1bHQsIG51bGwsIDIpKTsK
[
{
"id": 2,
"question": "Questão 1:",
"essay_question": false,
"value": "2.00",
"options": [
{
"id": 1,
"option": "Opção A",
"correct": false,
"question_id": 2
},
{
"id": 4,
"option": "Opção B",
"correct": true,
"question_id": 2
}
]
},
{
"id": 3,
"question": "Questão 2:",
"essay_question": false,
"value": "1.00",
"options": [
{
"id": 6,
"option": "Opção A",
"correct": false,
"question_id": 3
},
{
"id": 7,
"option": "Opção B",
"correct": true,
"question_id": 3
}
]
},
{
"id": 4,
"question": "Questão 3:",
"essay_question": false,
"value": "1.00",
"options": [
{
"id": 9,
"option": "Opção A",
"correct": false,
"question_id": 4
},
{
"id": 12,
"option": "Opção B",
"correct": true,
"question_id": 4
}
]
}
]