Модель mongodb содержит измененные при вызове функции levelQuestion - PullRequest
0 голосов
/ 03 января 2019

Вот код для схемы Схема хранит вопросы для определенного курса и который содержит главу и там вопрос

questions: [
    {
      Chapter: String,
      chques: [       
        {
          description: String,
          questions: [
            {
              question: String,
              options: [String],
              answer: Number,
              Explanation: String,
              code: { type: String, default: null },
              images: [{ type: String, default: null }],
              level: String
            }
          ]
        }
      ]
    }
  ],

Вот код для маршрута

Router.get(
  "/queformock/:course_id",
  passport.authenticate("jwt", { session: false }),
  (req, res) => {
    Courses.findOne({ _id: req.params.course_id })
      .lean()
      .exec()
      .then(course => {
        if (!course) res.status(404).json({ course: "course not found" });
        else {
          let coursepass = Object.assign({}, course);
          console.log("coursepass1: ", coursepass); //before calling levelQuestion it output as expected
          
          let level2 = levelQuestion(coursepass, "medium");
          console.log("coursepass2: ", coursepass);
          let level3 = levelQuestion(coursepass, "hard");
          console.log("coursepass3: ", coursepass);
          
          res.json(level2);
        }
      });
  }
);

Вот код функции levelQuestion

function levelQuestion(coursed, type) {
 
  let arr = [];
  
  coursed.questions.forEach(item => {
    item.chques.forEach(i => arr.unshift(i));
  });
  
  arr.forEach(item => {
    _.remove(item.questions, i => {
      return i.level !== type;
    });
  });
  
  _.remove(arr, item => {
    return item.questions == false;
  });
 
  return arr;
}

теперь проблема заключается в том, что при каждом вызове функции levelQuestion курс изменяется ... почему ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...