Javascript ChartJS将两个具有某些相似性的数组组合在一个图中

Javascript ChartJS将两个具有某些相似性的数组组合在一个图中,javascript,charts,jscharts,Javascript,Charts,Jscharts,我需要将两个数组合并成一个条形图,而无需手动操作数组。 阵列示例: result1 = {a:2,b:5,c:52} result2 = {a:4,b:3,d:47} //WHERE (to elaborate): result1.labels = {a, b, c}; result1.data = {2, 5, 52}; result2.labels = {a, b, d}; result2.data = {4, 3, 47}; var myChart = new Chart(

我需要将两个数组合并成一个条形图,而无需手动操作数组。 阵列示例:

result1 = {a:2,b:5,c:52}
result2 = {a:4,b:3,d:47}
//WHERE (to elaborate):
result1.labels = {a, b, c};
result1.data = {2, 5, 52};
result2.labels = {a, b, d};
result2.data = {4, 3, 47};


      var myChart = new Chart(ctx, {
    type: 'bar',
      data: {
          datasets: [{
              label: 'Dataset 1',
              data: result1.data,
              order: 1,
              labels: result1.labels
          }, {
              label: 'Dataset 2',
              data: result2.data,
              order: 2,
              labels: result2.labels
          }]
      },
      options: {
          scales: {
              y: {
                  beginAtZero: true
              }
          }
      }
  });
现在,我将只得到3层的酒吧,它将合并3。输入result1和result2,但我需要它使4条“a,b,c,d”。 我知道我可以手动填写result1并添加“d:0”,在result2中添加“c:0”,但由于它是从数据库中获取数据,而数据库会不断更改返回的数组大小,因此这不是一个好的解决方案

谢谢

您可以创建一个所有关键点的循环,然后在对象上循环并检查关键点是否已经存在。如果没有,请添加它

constresult1={a:2,b:5,c:52};
constresult2={a:4,b:3,d:47};
const getUniqueKeys=(…objs)=>{
//创建一组所有唯一的关键点
常量键=对象减少((键,对象)=>{
用于(输入obj){
键。添加(键)
}
返回键;
},新集合());
//将集合转换为数组
返回[…键];
}
常量addMissingValues=(键、对象、填充=0)=>{
//创建副本以防止更改原始对象
const copy={…obj};
for(键的常数键){
//如果密钥不存在,则添加该密钥
如果(!copy.hasOwnProperty(键)){
复制[键]=填充;
}
}
//返回副本
返回副本;
}
const keys=getuniquekey(result1,result2);
const correct1=addMissingValues(键、结果1);
const correct2=addMissingValues(键、结果2);
控制台日志(1);

控制台日志(2)
什么是
result1.data
result1.labels
因为我没有在object上看到
data
labels
属性,你能发布result1和result2的预期输出吗?labels:“a,b,c,d”数据:results1和2数组中的数字我刚刚试图简化它的see-updated-codesnipOkay,这也是我的应急方法,它似乎太复杂了,例如这个条形图可以用excel制作。。。所以我希望有一个更好的JSChart方法好吧,似乎excel自己都做不到。。。