Javascript 从表向charts.js动态添加数据
首先,我想使用两个JSON数组计算出现次数: 问题表作为答案选项:Javascript 从表向charts.js动态添加数据,javascript,json,chart.js,Javascript,Json,Chart.js,首先,我想使用两个JSON数组计算出现次数: 问题表作为答案选项: {["Answer1","Answer2","Answer3","Answer4", ...]} 结果表作为答案: {["Answer1","Answer1","Answer1","Answer1","Answer1","Answer2","Answer2","Answer2"]} 我需要弄清楚如何动态计算它们 { Answer1: 5, Answer2: 3, Answer3: 0, Answer4: 0
{["Answer1","Answer2","Answer3","Answer4", ...]}
结果表作为答案:
{["Answer1","Answer1","Answer1","Answer1","Answer1","Answer2","Answer2","Answer2"]}
我需要弄清楚如何动态计算它们
{
Answer1: 5,
Answer2: 3,
Answer3: 0,
Answer4: 0
}
然后我还需要将它们传递到这个Charts.js(标签和数据)
提前感谢:)此功能可以根据您的答案和结果计算您的答案:
function dynamicCounter(answers,results){
return answers.map( (a) => {
var nb = 0;
results.forEach( (r) => { if(a === r)nb++ } );
return { [a] : nb }
})
}
如果只希望将结果作为数据提供给chartjs:
这是一个正在工作的jsfiddle
此函数将返回ChartJS所需的数据: 函数getCountData(选项、结果){ 变量计数={}; var数据=[]; 选择。forEach(函数(c){ 计数[c]=0; }); 结果:forEach(函数(r){ 计数[r]+=1; }); 对象。键(计数)。forEach(函数(c){ 数据推送(计数[c]); }); 返回数据; } var选项=[‘应答1’、‘应答2’、‘应答3’、‘应答4’、‘应答5’]; var结果=[“回答1”、“回答1”、“回答1”、“回答1”、“回答1”、“回答2”、“回答2”];
log(getCountData(选项、结果))代码>其他人也工作,但这是我使用的一个。
function dynamicCounter(answers,results){
return answers.map( (a) => {
var nb = 0;
results.forEach( (r) => { if(a === r)nb++ } );
return { [a] : nb }
})
}
function results(answers,results){
return answers.map( (a) => {
var nb = 0;
results.forEach( (r) => { if(a === r)nb++ } );
return nb;
})
}