我试图权衡多项选择测验的答案并计算获胜者。在下面的JSON中,两次选择答案A
将获得4个“点”。
我如何遍历所有答案,并在考虑了各自权重的情况下对它们进行求和?我了解确定获胜者的逻辑,但简单地推翻价值观会让我大跌眼镜。
JSON结构如下:
{
"questions": [
{
"answers": [
{
"value": "A",
"weight": "1"
},
{
"value": "B",
"weight": "2"
},
{
"value": "C",
"weight": "3"
},
{
"value": "D",
"weight": "4"
}
]
},
{
"answers": [
{
"value": "B",
"weight": "4"
},
{
"value": "D",
"weight": "1"
},
{
"value": "A",
"weight": "3"
},
{
"value": "C",
"weight": "2"
}
]
}
]
}
最佳答案
您可以使用以下功能获取答案及其相应权重的总和。其中数据是有问题的对象。选中此Fiddle。
var out = {};
data.questions.forEach(function(ans) {
ans.answers.forEach(function(indv) {
out[indv.value] = (out[indv.value] || 0) + parseInt(indv.weight, 10);
});
});
console.log(out);
关于javascript - 加权对象值并确定获胜者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38363827/