Подумайте, как вы структурируете данные для вопросов.Если у каждого объекта вопроса есть свойство category
, вы можете использовать его при представлении данных, а также для вычисления итогов для определения баллов по категориям.
const questions = [
{
category: "energy",
question: "In summer, the temperature of your AC ?",
answers: [
{ text: "+26℃", score: 5 },
{ text: "20-25℃", score: 3 },
{ text: "16-20℃", score: 1 },
]
},
{
category: "energy",
question: "Will you turn off the screen when you are not using your PC ?",
answers: [
{ text: "Often", score: 5 },
{ text: "Sometimes", score: 3 },
{ text: "Rarely", score: 1 }
]
},
];
Функцию filter
можно использовать только для представлениявопросы для определенной категории.
var categoryFilterMaker = function(category) {
return function(obj) {
return obj.category === category
}
}
// Create a filter for the 'energy' category
var energyFilter = categoryFilterMaker('energy');
// Filter the questions
questions.filter(energyFilter);
Вы можете добавить свойство к каждому объекту, чтобы записать выбранный ответ или его оценку.
Функции картографирования, уменьшения и фильтрации являются связными, поэтому вы можете использовать их для получения результатов в любом формате, который вам необходим.