我还是菜鸟,需要一些帮助
以我的变量图表数据为起点:
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 设置一些东西,但我自己做不到。
各位高手,能否提供一个解决方案,我可以直接运行。
提前致谢。
在
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);