26.01.2020, 22:03
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 778
|
|
Как начать массив с еденицы
Всем привет.
for(var i=0; i<data.length; i++) {
alert(data.length) // 0,1,2
}
Как сделать, что бы было 1,2,3?
|
|
26.01.2020, 23:51
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
var i=1;
|
|
27.01.2020, 07:09
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 778
|
|
Сообщение от laimas
|
var i=1;
|
Нет.Так первый элемент data.length[0] теряется при выводе.
data[i] координаты графика, а data.length[i] значение абциссы. И получается,что следующее значение после x(0,0), x(data.length[0], data[0]), те на абциссе снова ноль,после нуля
Последний раз редактировалось ureech, 27.01.2020 в 07:19.
|
|
27.01.2020, 07:40
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 778
|
|
|
|
27.01.2020, 07:42
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
ureech, покажи пример своего массива и расскажи что ты с ним собрался делать...
|
|
27.01.2020, 09:39
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 778
|
|
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 можно это решить,но там уж очень сложно найти что надо)
|
|
27.01.2020, 10:29
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 778
|
|
Так работает, но кол-во точек заранее не известно.
|
|
27.01.2020, 10:37
|
Профессор
|
|
Регистрация: 11.03.2013
Сообщений: 778
|
|
Решил выводить не 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
|
|
27.01.2020, 10:49
|
|
Профессор
|
|
Регистрация: 19.01.2012
Сообщений: 505
|
|
Сообщение от ureech
|
Так работает, но кол-во точек заранее не известно.
|
xAxis: {
categories: (function(num){var arr=[];for(var n=1;n<=num;n++){arr.push(n+'');};return arr;})(num),
},
|
|
|
|