fork download
  1. const questions = [
  2. {
  3. id: 2,
  4. question: 'Questão 1:',
  5. essay_question: false,
  6. value: '2.00'
  7. },
  8. {
  9. id: 3,
  10. question: 'Questão 2:',
  11. essay_question: false,
  12. value: '1.00'
  13. },
  14. {
  15. id: 4,
  16. question: 'Questão 3:',
  17. essay_question: false,
  18. value: '1.00'
  19. }
  20. ];
  21.  
  22. const options = [
  23. {
  24. id: 1,
  25. option: 'Opção A',
  26. correct: false,
  27. question_id: 2
  28. },
  29. {
  30. id: 4,
  31. option: 'Opção B',
  32. correct: true,
  33. question_id: 2
  34. },
  35. {
  36. id: 6,
  37. option: 'Opção A',
  38. correct: false,
  39. question_id: 3
  40. },
  41. {
  42. id: 7,
  43. option: 'Opção B',
  44. correct: true,
  45. question_id: 3
  46. },
  47. {
  48. id: 9,
  49. option: 'Opção A',
  50. correct: false,
  51. question_id: 4
  52. },
  53. {
  54. id: 12,
  55. option: 'Opção B',
  56. correct: true,
  57. question_id: 4
  58. }
  59. ];
  60.  
  61. const result = questions.map((q) => {
  62. const filteredOptions = options.filter((opt) => opt.question_id === q.id);
  63. return {
  64. ...q,
  65. options: filteredOptions.length > 0 ? filteredOptions : null
  66. };
  67. });
  68.  
  69. // Serializei em JSON para o Ideone mostrar corretamente.
  70. console.log(JSON.stringify(result, null, 2));
  71.  
Success #stdin #stdout 0.03s 17456KB
stdin
Standard input is empty
stdout
[
  {
    "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
      }
    ]
  }
]