У меня есть одномерный массив заполняется с графической точкой координат, которые я получаю от закодированной строки JSON, на котором яJavascript одномерных для многомерного массива
jsdata = $.parseJSON('[' + strdata + ']');
arr = jsdata[0].toString().split(',');
и я, кажется, не вполне придумать algorigthm чтобы разобрать его в 3-мерном массиве, который должен иметь следующую структуру:
data['parameter to plot'][point][coordinate]
в качестве примера, предположим, что я собираюсь сделать линейный график с данными от 2-х параметров. Это привлечет 74 пункта 2 координаты для каждого из 2-х линий, что означает индекс массива будет идти так далеко, как:
arr[296];
Таким образом, индексы в «данные» массива нужно будет идти так далеко, как:
data[1][74][1];
У меня нет проблем с созданием каких-либо массивов, но разработка алгоритма заполнения массива «данных» в соответствии с длиной «arr» действительно выпекает мой мозг. :/
Спасибо за помощь.
EDIT:
Поскольку я не знаю, сколько параметров мне нужно рисовать графики для но я буду знать, какой тип графика я буду использовать, я пришел с этим ответом ,
создать мульти двумерный массив с помощью этой функции
function createArray(length) {
var arr = new Array(length || 0),
i = length;
if (arguments.length > 1) {
var args = Array.prototype.slice.call(arguments, 1);
while(i--) arr[i] = createArray.apply(this, args);
}
return arr;
}
И тогда я могу сделать
function toMulti(arr, plotType)
{
if(plotType =='line_plot')
{
var lineaux = createArray((arr.length/74/2),arr.length/2,2);
var cont = 0;
for(i= 0; i<lineaux.length; i++)
for(j=0; j< lineaux[i].length; j++)
for(k=0; k< lineaux[i][j].length;k++)
{
lineaux[i][j][k] = arr[cont];
cont +=1;
}
return lineaux;
}
}
Но линейный график не всегда будет иметь 74 очков, и не будет я всегда сюжет линейный график ..
Скажите мне, что вы думаете об этом, и если вы можете придумать какой-либо способ сделать этот не-plotType зависимым, я буду вечно благодарен. Или просто купите себе пиво, чтобы это сделать. : D
Какова структура исходного массива? – pawel
Это не так. это что-то вроде arr [0] = 'x координат', arr [1] = 'y координат' и т. д. – nanominimicro
Как «* так далее *»? 'arr [2] = 'z coord'', или' arr [2] =' second x coord'', или что это такое? Покажите нам образец, может быть, 'JSON.stringify (arr, null, 4)' – Bergi