我想使用复选框从 chart.js 添加和删除数据集。
现在我正在使用这个添加:
var ds1 = {
label: ..
data: .. etc
};
data.datasets.push(ds1);
Run Code Online (Sandbox Code Playgroud)
当我取消选中任何复选框时,它总是删除添加的最后一个数据集,这不是复选框中的一个。
data.datasets.pop(ds1);当单击复选框时,我正在使用它来删除 。
如果您要删除 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。