1

在这个小提琴中,我尝试制作一个按钮来在一组值和相对累积总和之间切换。

highchart我使用的选项是

exporting: {
    buttons: {
        'exportTo': {
            _id: 'exportTo',
            symbol: 'diamond',
            text: 'Show Cumulative',
            onclick: function () {
                if (!cumulative) {
                    this.series[0].setData(cumcum(data1));
                    this.series[1].setData(cumcum(data2));
                    cumulative = true;
                } else {
                    this.series[0].setData(data1);
                    this.series[1].setData(data2);
                    cumulative = false;
                }
            }
        }
    }
}

但是,如果您尝试选择一些点然后选择Show Cumulative,您会看到刚刚选择的点之后的点丢失了,当再次单击时它们又回来了(依此类推)。

你们怎么解释这个?这很容易,但我对 JS 很陌生

4

1 回答 1

1

问题出在cumcum功能上。

当您选择一个点时,它会将数组中的项目从一个数字更改为一个对象,如下所示:

[ 7, 6.9, 9.5, { selected: true, y: 14.5 }, 18.2, ... ]

因此,您必须将累加器更改为能够检测data[i]是数字还是对象并采取相应措施的东西:

for (var i = 1; i < data.length; i++) {
    if (typeof data[i] === 'object') {
        res[i] = res[i - 1] + data[i].y;
    } else {
        res[i] = res[i - 1] + data[i];
    }
}
于 2013-08-16T09:37:02.563 回答