Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Записать массив в многомерный массив (https://javascript.ru/forum/misc/76502-zapisat-massiv-v-mnogomernyjj-massiv.html)

CryNet 17.01.2019 18:42

Записать массив в многомерный массив
 
В localStorage храниться строка вида: ["Black","White"]
Получаю значения:
var localStorageLabels = JSON.parse(localStorage.getItem('labels')||'[]');
Дальше я хочу значения из массива localStorageLabels добавить в chartJS:
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: [], // сюда необходимо добавить значения
        datasets: [{
            label: '# of Votes',
            data: ["12","11"],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});

Я пробовал добавить через map(), но не работает - массив остаётся пуст. Как я пробовал:
myChart.data.labels.map(function(localStorageLabels){
    return localStorageLabels;
});

Подскажите как добавить значения из массива в многомерный массив. Спасибо :)

Aetae 17.01.2019 18:52

myChart.data.labels = localStorageLabels;
:)
localStorageLabels.forEach(function(label){
  myChart.data.labels.push(label);
});
localStorageLabels.push.apply(myChart.data.labels, localStorageLabels);
myChart.data.labels.push(...localStorageLabels);

CryNet 17.01.2019 18:57

Цитата:

Сообщение от Aetae (Сообщение 502237)
myChart.data.labels = localStorageLabels;

Чёрт. Что-то я про это сразу не подумал.

Вот ещё что. У меня получается, что в myChart.data.labels добавляется значение такого вида: "["Black","White"]", хотя мне нужно только "Black", "White"

Aetae 17.01.2019 19:23

Значит в localStorage у вас что-то не то.

CryNet 17.01.2019 19:27

Цитата:

Сообщение от Aetae (Сообщение 502241)
Значит в localStorage у вас что-то не то.

Разобрался. Когда не работает и начинаешь пробовать и так, и сяк, иногда забываешь удалить вот эти самые "пробы". Не заметил как оставил строчку, которая массив парсит строку.


Часовой пояс GMT +3, время: 09:55.