我试图权衡多项选择测验的答案并计算获胜者。在下面的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/

10-10 11:30