Удалить конкретный набор данных, а не всплывать последний добавленный - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь удалить / скрыть / вытолкнуть определенный набор данных из моего графика, когда у меня более 2. При всплывающем окне удаляется только последний толчок набора данных (ред.). Пожалуйста, смотрите ниже:

$('#radar2015').on('change', function () {
        var newDataset2 = {
            label: '2016',
            data: [2019, 552, 750, 1280, 1190, 2345, 2123, 534, 1234],
            backgroundColor: 'rgba(0, 183, 253, .25)',
            borderColor: 'rgb(0, 183, 253)',
            borderWidth: 2
        };
        if ($(this).is(':checked')) {
            radarChart.data.datasets.push(newDataset2);
        }
        else {
            radarChart.data.datasets.pop();
        }
        radarChart.update();
    });
    $('#radar2016').on('change', function () {
        var newDataset3 = {
            label: '2017',
            data: [3235, 1125, 2650, 1380, 990, 2345, 123, 1234, 1234],
            backgroundColor: 'rgba(220, 40, 180, .25)',
            borderColor: 'rgb(220, 40, 180)',
            borderWidth: 2
        };
        if ($(this).is(':checked')) {
            radarChart.data.datasets.push(newDataset3);
        }
        else {
            radarChart.data.datasets.pop();
        }
        radarChart.update();
    });

1 Ответ

0 голосов
/ 02 мая 2018

Вам необходимо использовать filter () для удаления определенных значений из массива

radarChart.data.datasets.filter((item) => {
 // condition for removing dataset
});

Примечание: filter () каждый раз возвращает новый массив

Пример из MDN:

var words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...