如何在JavaScript中分析/统计问卷对象数组的答案?
解决方案
原始问卷数据
const responses = [ { "question1": "Apple", "question2": 5, "question3": "Item 1" }, { "question1": "Apple", "question2": 4, "question3": "Item 2" }, { "question1": "Orange", "question2": 4, "question3": "Item 2" } ];
通用统计函数
通过一个复用性强的函数,可单独统计任意问题的答案分布:
function countAnswers(responses, questionKey) { const countMap = {}; // 遍历所有回答,统计每个答案的出现次数 responses.forEach(response => { const answer = response[questionKey]; countMap[answer] = (countMap[answer] || 0) + 1; }); // 将统计结果转换为要求的数组格式 return Object.entries(countMap).map(([answer, count]) => ({ answer, count })); }
生成各问题统计结果
调用函数分别获取三个问题的统计数据:
const question1Stats = countAnswers(responses, 'question1'); const question2Stats = countAnswers(responses, 'question2'); const question3Stats = countAnswers(responses, 'question3');
输出结果
- question1统计结果:
[ { "answer": "Apple", "count": 2 }, { "answer": "Orange", "count": 1 } ]
- question2统计结果:
[ { "answer": 5, "count": 1 }, { "answer": 4, "count": 2 } ]
- question3统计结果:
[ { "answer": "Item 1", "count": 1 }, { "answer": "Item 2", "count": 2 } ]
这些统计数组可直接作为React中ChartJS的数据源,用于柱状图、饼图等图表展示。
内容的提问来源于stack exchange,提问作者V4LDUS
相关产品推荐
相关产品推荐

