Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var groupedByFilterId: any = _.groupBy(filterObject, 'questionId');
- //iterate all the questions that the user wanted to filter by
- let obj = undefined;
- let index = 0;
- for (var filterArr of Object.keys(groupedByFilterId)) {
- let innerIndex = 0;
- for (var currentFilter of groupedByFilterId[filterArr]) {
- let insertSession = true;
- //get question id and answer by id
- let responses = _.groupBy(session.responses, "question_id");
- //checks if there is an answer of the current filter question
- if (!responses[currentFilter.questionId]) {
- insertSession = false;
- // break; //means the user didn't answer this question in the current session
- }
- let currentAnswer: any = responses[currentFilter.questionId][0];
- //check if the current session is true for each of the filters questions
- if (!currentAnswer || currentAnswer && currentAnswer.answer.value != currentFilter.value) {
- //if one is false -> break
- insertSession = false;
- // break;
- }//else means its true
- if (insertSession) {
- obj = session;
- // arrayOfFilterSessions.push(session);
- // break;
- }
- if (groupedByFilterId[filterArr].length - 1 === innerIndex && insertSession === false) {
- obj = undefined;
- }
- innerIndex++;
- }
- if (index === Object.keys(groupedByFilterId).length-1 && obj!=undefined) {
- arrayOfFilterSessions.push(obj);
- }
- index++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement