#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. ТЫ МУЖЧИНА! Спасибо, приятель! Вы сэкономили мне часы работы 😉