如何从 Chart.js 中删除特定数据集?

Rod*_*ota 4 javascript charts

我想使用复选框从 chart.js 添加和删除数据集。

现在我正在使用这个添加:

var ds1 = {
    label: ..
    data: .. etc
};
data.datasets.push(ds1);
Run Code Online (Sandbox Code Playgroud)

当我取消选中任何复选框时,它总是删除添加的最后一个数据集,这不是复选框中的一个。

data.datasets.pop(ds1);当单击复选框时,我正在使用它来删除 。

JNY*_*ger 6

如果您要删除 using,data.datasets.pop(ds1)您将永远不会得到您正在寻找的结果。该dataset属性是一个数组,所以让我们只关注数组并忽略 Chart.js。

第一个问题是Arrays 类型的pop()方法不接受参数,因此提供要删除的元素无关紧要。 Pop()将始终从数组中删除最后一个元素。

要从数组中删除特定元素,您需要使用该splice()函数。

假设这ds1是您要删除的元素。

let removalIndex = data.datasets.indexOf(ds1); //Locate index of ds1
if(removalIndex >= 0) { //make sure this element exists in the array
    data.datasets.splice(removalIndex, 1);
}
Run Code Online (Sandbox Code Playgroud)

这将删除数组中从我们找到的索引开始的 1 条记录ds1。