Я пытаюсь построить график акций, используя chart.js и stocks.js для отображения акций. Я использую две функции для этого. Один, полученный при нажатии кнопки, и другой, который очищает данные и обновляет диаграмму.
Я пытался изменить то, что отображается, как оно обновляется, как я очищаю данные, а также другие вещи. Я новичок в JavaScript. При нажатии кнопки HTML она активирует функцию oneday
. У меня есть другие кнопки, которые делают то же самое, но с разным временем и т. Д. Сейчас это работает, когда я нажимаю одну из кнопок, затем, когда я нажимаю другую, она меняется, но третья имеет ось X как неопределенную, тогда четвертая имеет обе оси как неопределенные.
function clearwithtimes(){
async function request(){
var result = await stocks.timeSeries({
symbol: stock,
interval: interval,
amount: time
});
var datesdata = result;
for (i in datesdata){
//Loops through array
delete datesdata[i].high
delete datesdata[i].low
delete datesdata[i].close
delete datesdata[i].volume
delete datesdata[i].open
}
var stringeddates = JSON.stringify(datesdata);
var step;
stringeddates = stringeddates.replace('[{"date":"', '');
for (step = 0; step < time; step++) {
stringeddates = stringeddates.replace('T', ' ');
stringeddates = stringeddates.replace('.000Z', '');
stringeddates = stringeddates.replace('",', '#');
stringeddates = stringeddates.replace('"},{"date":"', '#');
}
stringeddates = stringeddates.replace('},{"date":"', '#');
stringeddates = stringeddates.replace('T19:00:00.000Z"}]', '');
stringeddates = stringeddates.replace('T19:00:00.000Z"', '');
stringeddates = stringeddates.replace('"}]', '');
stringeddates = stringeddates.split("#");
var result = await stocks.timeSeries({
symbol: stock,
interval: interval,
amount: time
});
for (i in result){
//Loops through array
delete result[i].high
delete result[i].low
delete result[i].close
delete result[i].volume
delete result[i].date
}
var numberlist = JSON.stringify(result);
var step;
numberlist = numberlist.replace('[{"open":', '');
for (step = 0; step < time; step++) {
numberlist = numberlist.replace('},{"open":', '#');
}
numberlist = numberlist.replace('},{"open":', '#');
numberlist = numberlist.replace('}]', '');
numberlist = numberlist.split("#");
finalprices = numberlist.reverse();
finaldates = stringeddates.reverse();
stockGraph.data.datasets[0].data = finalprices;
stockGraph.data.labels = finaldates;
stockGraph.update();
}
request();
}
function oneday() {
stockform=document.getElementById("stockname");
stock=stockform.elements["Stock"].value;
time = 96;
interval = '15min';
clearwithtimes();
}
Что должно произойти, когда я активирую однодневную функцию несколько раз, ось не должна быть неопределенной.