Как начать массив с еденицы
Всем привет.
for(var i=0; i<data.length; i++) {
alert(data.length) // 0,1,2
}
Как сделать, что бы было 1,2,3? |
var i=1;
|
Цитата:
data[i] координаты графика, а data.length[i] значение абциссы. И получается,что следующее значение после x(0,0), x(data.length[0], data[0]), те на абциссе снова ноль,после нуля |
|
ureech, покажи пример своего массива и расскажи что ты с ним собрался делать...
|
function Full_Report_Eda(ot_eda,to_eda,user,grf_eda) {
$.ajax({
url:'/dieta/'+user+'/full-report.html',
data:{grf_eda: grf_eda,ot_eda:ot_eda,to_eda:to_eda},
dataType:'json',
success : function (data) {
var res1 = [];
var res2 = [];
var res3 = [];
var res4 = [];
for(var i=1; i<data.length; i++) {
res1 += data[i].percent_kkal+',';
res2 += data[i].percent_carb+',';
res3 += data[i].percent_fat+',';
res4 += data[i].percent_prot+',';
}
Grafics_Eda(res1,res2,res3,res4,data.length)
}
});
};
function Grafics_Eda(data1,data2,data3,data4,num) {
//var num = num.unshift(0);
var chart2;
var period = '';
var kkal = data1.slice(0, -1);
kkal = kkal.split(',')
for(var i=0; i<kkal.length; i++) {
kkal[i] = +kkal[i];
}
var carb = data2.slice(0, -1);
carb = carb.split(',')
for(var i=0; i<carb.length; i++) {
carb[i] = +carb[i];
}
var fat = data3.slice(0, -1);
fat = fat.split(',')
for(var i=0; i<fat.length; i++) {
fat[i] = +fat[i];
}
var prot = data4.slice(0, -1);
prot = prot.split(',')
for(var i=0; i<prot.length; i++) {
prot[i] = +prot[i];
}
chart2 = new Highcharts.Chart({
chart: {
renderTo: 'chart_2',
type: 'line',
height: 350,
},
title: {
text: 'Потребление энергии за '+num+' дня'
},
xAxis: {
categories: num // вот тут data.length. Картинка в сообщении выше
},
yAxis: {
title: {
text: 'Interviewed'
}
},
series: [{
name: 'Калории',
data: kkal
},
{
name: 'Углеводы',
data: carb
},
{
name: 'Жиры',
data: fat
},
{
name: 'Белок',
data: prot
}]
});
}
Возможно в настройках скрипта Highcharts можно это решить,но там уж очень сложно найти что надо) |
xAxis: {
categories: ['1', '2', '3'] }, ^^ так пробовали? https://api.highcharts.com/highcharts/xAxis |
Цитата:
|
Решил выводить не data.length, а даты(date),но что то не получается.
На входе в ф-цию Grafics_Eda(), имею массив
[{"date":"2020-01-20","percent_kkal":"9.7","percent_carb":"14.0","percent_fat":"5.0","percent_prot":"15.5"},{"date":"2020-01-21","percent_kkal":"3.8","percent_carb":"1.8","percent_fat":"4.9","percent_prot":"3.5"},{"date":"2020-01-23","percent_kkal":"10.8","percent_carb":"10.2","percent_fat":"2.0","percent_prot":"34.5"},{"date":"2020-01-27","percent_kkal":"9.7","percent_carb":"7.9","percent_fat":"29.9","percent_prot":"4.6"}]
function Grafics_Eda(data1,data2,data3,data4,date) {
var dat = date.split(',')
for(var i=0; i<date.length; i++) {
date[i] = +date[i];
}
....
}
Подставляю в
xAxis: {
categories: date
}
выводит NaN |
Цитата:
xAxis: {
categories: (function(num){var arr=[];for(var n=1;n<=num;n++){arr.push(n+'');};return arr;})(num),
},
|
Так теряется первый элемент. Более менее работает, если совсем убрать параметр categories:. Тогдп автоматом создаются с x(0,0), что в принципе устраивает, но даты были бы лучше)
|
Как он может теряться, если это тупо массив строк для обозначений по горизонтали? Что-то вы не так делаете.
|
Точки то не теряются, а вот значение data[0], теряется. Начинает выводить с data[1]
|
ureech, этот код выводит:
categories: ['1', '2', '3'] для num равного трём. Не может один вариант работать, а другой - нет. Ищите где накосячили, с числом в num или ещё где. |
Ок,благодарю. Разобрался. В предыдущей ф-ции вводил в цикле i=1;
Подскажите как дата заставить работать. |
Всё,решил с датами. Спасибо всем за помощь.
|
| Часовой пояс GMT +3, время: 11:26. |