Javascript 从表向charts.js动态添加数据

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

首先,我想使用两个JSON数组计算出现次数:

问题表作为答案选项:

{["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;
    })
}