如何在 Javascript [重复] 中总结多个数据集 [0, 1, 2, 3, 4...] 和总是数据 [0]

问题描述 投票:0回答:1

我还是菜鸟,需要一些帮助

以我的变量图表数据为起点:


var chartdata = {
  labels: [
    "Bar 1",
    "Bar 2",
    "Bar 3",
    "Bar 4",
  ],
  datasets: [
    {
      label: "Green data",
      type: "bar",
      data: [20, 30, 40, 20]
    },
    {
      label: "Red data",
      type: "bar",
      data: [10, 30, 20, 10]
    },
    {
      label: "Blue data",
      type: "bar",
      data: [20, 20, 20, 20]
    },

因为我有一个堆叠条形图。我想知道如何对 20、10、20 = 50 的“Bar 1”数据点进行sum

我首先想到的是一个数组,它是这样的:

const array0 = chartdata.datasets[0].data;

console.log(array0.reduce((a, b) => a + b, 0));

...但它只能加20 + 30 + 40 + 20,这是dataset[0]和类似操作中的所有数据。意味着我只能获得所有绿色数据点或其他数据点。不是一个堆叠条的总和。

似乎不可能制作类似 chartdata.datasets[0 to 4].data[always 0];这是 y 轴上总的 l val"bar 1" 值。

我试着用 .map 设置一些东西,但我自己做不到。

各位高手,能否提供一个解决方案,我可以直接运行。

提前致谢。

javascript arrays charts chart.js dataset
1个回答
0
投票

Array#reduce
本身上使用
chartdata.datasets

let chartdata={labels:["Bar 1","Bar 2","Bar 3","Bar 4",],datasets:[{label:"Green data",type:"bar",data:[20,30,40,20]},{label:"Red data",type:"bar",data:[10,30,20,10]},{label:"Blue data",type:"bar",data:[20,20,20,20]},]};
let res = chartdata.datasets.reduce((acc, curr) => acc + curr.data[0], 0);
console.log(res);

© www.soinside.com 2019 - 2024. All rights reserved.