Создание многомерных массивов в строке json

#jquery #arrays #json #multidimensional-array

#jquery #массивы #json #многомерный массив

Вопрос:

Почему,

Я бьюсь головой о стену, потому что, кажется, я не понимаю этого правильно…

Я использую jqBarGraph.1.1 Библиотека JS отображает некоторые данные.

Данные, которые я должен отобразить, находятся внутри объекта JSON, который я получаю.

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

Требования к библиотеке следующие:

 var graphResolutionByYear = new Array(
        [[4238,4459,550],'21.04.2014'],
        [[4156,4453,550],'22.04.2014'],
        [[4424,4459,550],'23.04.2014'],
        [[4238,4459,550],'24.04.2014'],
        [[4156,4453,550],'25.04.2014'],
        [[4238,4459,550],'26.04.2014'],
        [[4238,4459,550],'27.04.2014']
    );
  

Итак, что у меня есть сейчас, мне нужно каким-то образом создать массив сверху после того, как я вызвал my $.getJSON() .

Что я до сих пор делал с помощью поиска в Google и исследований, так это:

 function createBarChart(daten){
    var arraySize = daten["data"].length;
    var barValues = new Array(arraySize);


    $.each(daten["data"],function(i,val){
        var values = new Array();
        barValues[i] = new Array(3);
        barValues[i].push(daten["data"].prodDatum);


    });


}
  

Массив из 3 значений создается в пределах значений BAR, но значения prodDatum, которые являются значением json, по-прежнему отсутствуют. Это своего рода «ключ».

$.getJSON Функция вызывает функцию createBarChart() и передает строку JSON.

Сама строка JSON — это не что иное, как массив с несколькими записями данных.

Если кто-нибудь может подтолкнуть меня в правильном направлении, это было бы потрясающе!

Спасибо!

Обновить:

Я изменил разметку на следующую

  function createHochOfenChart(daten){

    var arraySize = daten["data"].length;
    var barValues = new Array(arraySize);


    $.each(daten["data"],function(i,val){
        var valus = new Array();
        barValues[i]=new Array(3);
        barValues[i].push("test");


    });

    console.debug(barValues);

 }
  

Теперь массив с 3 значениями превращается в массив с 4 значениями, поэтому строка «test» добавляется в мой новый инициализированный массив Array (3). Кто-нибудь знает, как «сказать», что это «многомерная» запись?

Обновление 2:

Теперь я дошел до того, что первый, так сказать, массив заполнен нужными мне данными:

  function createHochOfenChart(daten){

    var arraySize = daten["data"].length;
    var barValues = new Array(arraySize);


    $.each(daten["data"],function(i,val){
        var valus = new Array();
        barValues[i]=new Array(3);
        barValues[i][0] = val.reSoll;
        barValues[i][1] = val.reIst;
        barValues[i][2] = val.reVorrat;
    });

    console.debug(barValues);

 }
  

Значения теперь помещены в массив, но я не могу добавить строку с датой, которая работает как «ключ»…

Комментарии:

1. хм, не могли бы вы предоставить src-код, который вы получаете от getJSON, и какой вывод вам нужен?

2. getJSON работает нормально, я получаю их данные без каких-либо проблем. Проблема даже не в этом.

Ответ №1:

Эта функция принимает массив daten[‘данные’] и создает запись списка с массивом 3-х возможных значений в первой позиции и значением prodDatum во второй

 function createHochOfenChart(daten){
    var barValues = daten["data"].map(function (e){
        var valus = new Array();
        valus.push([e.reSoll, e.reIst, e.reVorrat])
        valus.push(e.prodDatum);
        return valus
    })
    return barValues
}
  

Это то, что вы хотели?

Комментарии:

1. Почему я не уверен, мне нужно выполнить итерацию по массиву daten [«данные»] json и взять некоторые значения из массива daten [«данные»] json и создать точно такой же массив, как я описал сверху. Я добился некоторого прогресса, который я вставлю в вопрос через секунду!

2. ТЫ МУЖЧИНА! Спасибо, приятель! Вы сэкономили мне часы работы 😉