2
我试图创建一个饼图,我可以从两个数据系列切换到一个按钮。将数组传递给setData()函数时的问题
当我将值直接传递给我按钮onclick事件中的setData()
函数时,一切正常。请参阅jsfiddle(工作)。
但是,如果我将数据保存在数组中,那么当我使用setData()时,函数会用第二个数组覆盖第一个数组。请参阅jsfiddle(不工作)。
综上所述,当我用数据直接它的工作原理:
// the button action
$('#button').click(function() {
var chart = $('#container').highcharts();
bool_pie = !bool_pie;
if(!bool_pie){
chart.series[0].setData([129.2, 144.0, 176.0]);
}else{
chart.series[0].setData([29.9, 71.5, 106.4]);
}
});
但是当我使用变量,数组data1
由阵列data2
var data1 = [29.9, 71.5, 106.4];
var data2 = [129.2, 144.0, 176.0];
// the button action
$('#button').click(function() {
var chart = $('#container').highcharts();
bool_pie = !bool_pie;
if(!bool_pie){
chart.series[0].setData(data2);
}else{
chart.series[0].setData(data1);
}
});
所以我已经确定了问题覆盖,但我无法弄清楚如何管理它。
谢谢你,你的解决方案的工作!来自Highcharts的怪异行为。 – Kabulan0lak
顺便说一句,如果我可以使用'data1.slice()',使用'data1.slice(0,data1.length)'有什么意义?它是更快还是什么? – Kabulan0lak
'data1.slice()'将返回'data1'的完整副本?如果是的话,比它会更快,更具可读性:) – taxicala