我尝试绘制汇率图表,向银行提出请求,并获取包含有关汇率数据的对象数组。而且我需要将值从对象转移到图表上显示的数组
在这里我得到了一个对象数组
dateArr = {
0: {rate: 25.310639, exchangedate: "06.09.2019"}
1: {rate: 25.310639, exchangedate: "07.09.2019"}
2: {rate: 25.310639, exchangedate: "08.09.2019"}}
var dataArr = [];
async function currency(e) {
var sdate=startdate.value.split("-").join("");
var edate=enddate.value.split("-").join("");
for (var i = Number(sdate); i <= Number(edate); i++){
await delay(2000)
let url=`https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=${currenc.value}&date=${i}&json`;
let response= await fetch(url);
let data =await response.json();
var itemObj={
rate:data[0].rate,
exchangedate:data[0].exchangedate
};
dataArr.push(itemObj);
}
console.log(dataArr);
}
在这里,我需要将数据字段传递给series数组 数据[25.31,25.31,25.31]
Highcharts.chart('container', {
title: {
text: 'Графік курса валют'
},
subtitle: {
text: ''
},
yAxis: {
title: {
text: 'Зріст'
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle'
},
plotOptions: {
series: {
label: {
connectorAllowed: false
},
pointStart: 2010
}
},
series: [{
name: '',
data: [] //OVER HERE!!!
}, {
}],
responsive: {
rules: [{
condition: {
maxWidth: 500
},
chartOptions: {
legend: {
layout: 'horizontal',
align: 'center',
verticalAlign: 'bottom'
}
}
}]
}
});
答案 0 :(得分:0)
不确定我是否正确理解了您的问题...如果在这种情况下可以访问数组变量“ dataArr”,则可以分配数据:dataArr像这样:
您可以像这样将速率值从数组中提取到新数组中:
var dateArr = [{rate: 25.310639, exchangedate: "06.09.2019"}, {rate: 25.310639, exchangedate: "07.09.2019"}]
var rates = dateArr.map(x => x.rate)
# rates is now [25.310639, 25.310639]
Highcharts.chart('container', {
title: {
text: 'Графік курса валют'
},
subtitle: {
text: ''
},
yAxis: {
title: {
text: 'Зріст'
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle'
},
plotOptions: {
series: {
label: {
connectorAllowed: false
},
pointStart: 2010
}
},
series: [{
name: '',
data: rates //OVER HERE!!!
}, {
}],
responsive: {
rules: [{
condition: {
maxWidth: 500
},
chartOptions: {
legend: {
layout: 'horizontal',
align: 'center',
verticalAlign: 'bottom'
}
}
}]
}
});
答案 1 :(得分:0)
我想您获得了如下所示的对象数组,然后只需使用map函数来获取速率字段值。
arr = [
{rate: 25.310639, exchangedate: "06.09.2019"},
{rate: 25.310639, exchangedate: "07.09.2019"},
{rate: 25.310639, exchangedate: "08.09.2019"}
];
newData = arr.map(d => d.rate);
console.log(newData);