JSFiddle - React, Tailwind, and code Playground

by A A

JavaScript

questionList.forEach((question) => {
  let respName = "";
  let respObj = question;

  if (question.type === "some_type") {
    // some not important code
    // respName = "some_name"
  } else if (question.type === "some_type2") {
    // some not important code
    // respName = "some_name2"	
  } else if (question.type === "some_type3") {
    // some not important code
    // respName = "some_name3"
  } else if (question.type === "some_type4") {
    respName = "some_name4"
    respObj = getBlockStats(handle, block);
  } else {
    // some not important code
    // respName = "some_nameX"
  }

  setTimeout(() => {
    io.emit(respName, respObj);
  }, offset);

  offset += offsetIncrease;
});


const getBlockStats = (handle, block) => {
  await GameAnswers.findOne({
      handle
    })
    .exec()
    .then(gameAnswers => {
      let maxQuesstionInBlock = gameAnswers.answers
        .reduce((a, b) => {
          return (parseInt(a.ownId) > parseInt(b.ownId) ? a : b)
        })
      let results = [];

      for (let i = 1; i <= maxQuesstionInBlock.ownId; i++) {
        let team1AllAnswers = gameAnswers.answers
          .filter(el => {
            return el.blockId === block
          })
          .filter((el) => {
            return el.team === "team1"
          })
          .filter((el) => {
            return parseInt(el.ownId) === i
          });

        let team1CorrectAnswers = team1AllAnswers
          .filter(el => {
            return el.correct === "true"
          });

        let team2AllAnswers = gameAnswers.answers
          .filter(el => {
            return el.blockId === block
          })
          .filter((el) => {
            return el.team === "team2"
          })
          .filter((el) => {
            return parseInt(el.ownId) === i
          });

        let team2CorrectAnswers = team2AllAnswers
          .filter(el => {
            return el.correct === "true"
          });

        let result = {
          "question": i,
         ...