My first job interview question?

mohsinalisoomro

MOHSIN ALI SOOMRO

Posted on December 8, 2021

My first job interview question?

How to get loop throw and structure data.
loop throw questions array and get comments with respect of the questionId and replies with respect of commentId

Example

let data = {
    questions: [
        {
            questionId: 1,
            questionText: "Question 1",
        },
        {
            questionId: 2,
            questionText: "Question 2",
        },
        {
            questionId: 3,
            questionText: "Question 3",
        },
        {
            questionId: 4,
            questionText: "Question 4",
        },
    ],
    comments: [
        {
            commentId: 1,
            questionId: 1,
            commentText: "Comment 1",
        },
        {
            commentId: 2,
            questionId: 1,
            commentText: "Comment 2",
        },
        {
            commentId: 3,
            questionId: 1,
            commentText: "Comment 3",
        },
        {
            commentId: 4,
            questionId: 3,
            commentText: "Comment 4",
        },
        {
            commentId: 5,
            questionId: 2,
            commentText: "Comment 5",
        },
    ],
    replies: [
        {
            commentId: 1,
            replyId: 1,
            replyText: "Reply 1",
        },
        {
            commentId: 2,
            replyId: 2,
            replyText: "Reply 2",
        },
        {
            commentId: 3,
            replyId: 3,
            replyText: "Reply 3",
        },
        {
            commentId: 3,
            replyId: 4,
            replyText: "Reply 4",
        },
        {
            commentId: 5,
            replyId: 5,
            replyText: "Reply 5",
        },
    ],
};

Enter fullscreen mode Exit fullscreen mode

Try yourself to prepare interview if stuck blow is the solution
Desire output:

[
  {
    questions: { questionId: 1, questionText: 'Question 1' },
    comments: { commentId: 1, questionId: 1, commentText: 'Comment 1' },
    replies: [ [Object] ]
  },
  {
    questions: { questionId: 1, questionText: 'Question 1' },
    comments: { commentId: 2, questionId: 1, commentText: 'Comment 2' },
    replies: [ [Object] ]
  },
  {
    questions: { questionId: 1, questionText: 'Question 1' },
    comments: { commentId: 3, questionId: 1, commentText: 'Comment 3' },
    replies: [ [Object], [Object] ]
  },
  {
    questions: { questionId: 2, questionText: 'Question 2' },
    comments: { commentId: 5, questionId: 2, commentText: 'Comment 5' },
    replies: [ [Object] ]
  },
  {
    questions: { questionId: 3, questionText: 'Question 3' },
    comments: { commentId: 4, questionId: 3, commentText: 'Comment 4' },
    replies: []
  }
]

Enter fullscreen mode Exit fullscreen mode

Solution 👏 👏 👏

function generateOutput(data) {
    const { questions, comments, replies } = data;
    // CODE HERE
    let output = [];
  questions.map((i)=>{
      comments.map((c)=>{
        const reply = replies.filter((r)=>r.commentId===c.commentId)
        if(c.questionId===i.questionId){
          output.push({questions:i,comments:c,replies:reply})
        }
      })
  })
    return output;
}

let output = generateOutput(data);

console.log(output);

Enter fullscreen mode Exit fullscreen mode

Thanks for reading, if it is helpful comment blow with Thanks 😃

💖 💪 🙅 🚩
mohsinalisoomro
MOHSIN ALI SOOMRO

Posted on December 8, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

What was your win this week?
weeklyretro What was your win this week?

November 29, 2024

Where GitOps Meets ClickOps
devops Where GitOps Meets ClickOps

November 29, 2024