为什么我的对象数组不会从饼图数据点中删除?

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

我已经从CanvasJS添加了一个饼图。它带有预先删除的现有数据点,我想动态添加自己的数据。

let chart = new CanvasJS.Chart("chartContainer", {
    interactivityEnabled: false,
    backgroundColor: "#272953",
    animationEnabled: false,
    title: {
        text: "Portfolio",
        fontColor: "#fff",
        fontFamily: "tahoma"
    },
    data: [{
        type: "pie",
        startAngle: 240,
        yValueFormatString: "##0\"%\"",
        indexLabel: "{label} {y}",
        dataPoints: [
            // { y: 79.45, label: "Google", indexLabelFontColor: "#fff", noOfUnits: 0, ticker: 'GOOGL' } <----- example
        ]
    }]
});

window.onload = loadPieChart();

function loadPieChart() {
    chart.render();
}

let dataPoints = chart.data[0].dataPoints;

因此,当我添加新股票时,带有数据的对象被推到dataPoints

我遇到的问题是,当我去删除股票时,它会从dataPoints中删除自己,这很好但它仍显示在饼图中。

如果将dataPoints登录到控制台,则为空数组。

但是如果您登录chart.data[0].dataPoints,它仍然具有先前添加的库存。

用于添加库存:

dataPoints.push({ y: stockPercentage, 
   label: stockObject["name"], 
   indexLabelFontColor: "#fff", 
   noOfUnits: stockObject["noOfUnits"], 
   ticker: stockObject["ticker"] })

用于删除库存:

function deleteStock(e) {

    //remove stock from Datapoint in pie chart    
    dataPoints = dataPoints.filter(stock => currentRow.childNodes[1].textContent !== stock['ticker']);

    chart.render();

}

无法理解为什么它要在dataPoints中添加和删除对象但不能在饼图中删除,以及即使您登录chart.data[0].dataPoints,即使在let dataPoints = chart.data[0].dataPoints;之后,数据仍然存在的事实>

我必须犯一个愚蠢的错误。

预先感谢

我已经从CanvasJS添加了一个饼图。它带有预先删除的现有数据点,我想动态添加自己的数据。让图表= new CanvasJS.Chart(“ chartContainer”,{...

javascript arrays class object pie-chart
2个回答
0
投票

尝试在deleteStock函数中添加它:


0
投票

如果我们将过滤结果分配给图表数据集怎么办

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