JS или JQuery - отправка данных в двухмерный массив?

0

Я использую jqPlot для построения некоторых динамических графов.

jqPlot принимает 2D-массив для своих данных, таким образом:

$.jqplot('chartdiv',  [[[1, 2],[2,5.12],[3,13.1],[7,33.6],[9,85.9],[21,219.9]]],
{ title:'progress',
  axes:{yaxis:{min:0, max:240}},
  series:[{color:'#5FAB78'}]
});

Первое число - это ось x (в этом случае 1,2,3,7,9 и 21), второе число - ось y. chartdiv - это элемент html, в котором отображается граф, а остальная часть - сама по себе.

Я хочу взять данные из своего локального хранилища и нажать на массив, который позволит мне отображать его в виде графика, и я не могу понять, как это сделать.

Если мой массив объявлен с помощью

var graphdata = [];

как я вставляю данные в него? Я использую такой цикл, чтобы перейти к контенту:

var dt          = new Date();
var today       = dt.getDateKey();
var df          = getStartDate(period);
var datefrom    = df.getDateKey();  
var graphdata = [];
alert("Today is " + today + " and the graph will be calculated from " + datefrom);
while (df<=dt) {                
    dataObject = JSON.parse(localStorage.getItem(df.getDateKey()));     
    if(dataObject){
        var dateposition = df.getDateKey();
        console.log("Date is " + dateposition);
        console.log("The Weight is " + dataObject.savedobs1);
        graphdata.push([dateposition,dataObject.savedobs1]);            
    }
    df.setDate(df.getDate() + 1);
};
console.log("Graph data " + graphdata);     

Мне нужно получить дату и данные на диаграмме, и я не могу разобраться, как получить ее в правильном формате. Консоль.log данных графа просто дает:

Graph data ,26/04/2014,118,27/04/2014,116,28/04/2014,116,29/04/2014,105 
Теги:
arrays

1 ответ

3
Лучший ответ

Ваша текущая настройка добавляет ваши данные после первого пустого массива в вашем массиве верхнего уровня.

Если вопрос заключается в том, как передавать данные в этот вложенный массив, просто заверните его, когда закончите.

// create an empty array
var list = [];

// push data
list.push([1,2]);
list.push([3,4]);
list.push([5,6]);

// wrap the result before you return it
console.log([list]);
    // returns [[[1,2],[3,4],[5,6]]]

DEMO

выход: Изображение 174551

  • 0
    Я изменил объявление массива, и я использую тот же метод, что и вы. Я не получаю ваш вывод, хотя ваша демоверсия ничего не делает для меня - я нажимаю Run и ничего не происходит вообще.
  • 0
    На самом деле, я проверил в консоли (думал, что он появится в скрипке), и я не получаю ваш результат, я получаю 1,2,3,4,5,6, что я и получал раньше.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню