![](/img/trans.png)
[英]How can I iterate through multiple URLs to fetch JSON response in Google Apps Script?
[英]How to iterate through JSON response from fetch() then add it to chart data?
我正在尝试从 API 获取 JSON 响应,然后将其添加到 Chart.js 图表中。 这是Vue组件的JS代码
import LineChart from './LineChart.js'
export default {
name: 'Chart',
components: LineChart,
data () {
return {
loaded: false,
stockData: {
labels: null,
datasets: null
}
}
},
async mounted () {
this.loaded = false
try{
const response = await fetch('http://localhost/AAPL')
const stock = await response.json()
console.log(stock)
let annual = stock.Earnings.Annual
for(let i of annual){
this.stockData.labels.push(i.date)
this.stockData.datasets.push(i.epsActual)
}
this.loaded = true
} catch (e){
console.error(e)
}
}
}
但我得到了错误
Chart.vue?36ee:38 TypeError: annual[Symbol.iterator] is not a function
有没有其他方法可以将数据添加到图表中?
JavaScript 有几种类型的循环。 最有可能的annual
是没有自定义迭代器的对象,这就是您收到此消息的原因。
1) for ... of
用于循环可迭代对象,例如数组和其他类似数组的结构,或定义了自定义迭代器的对象。
2) for ... in
用于循环对象键(和数组索引)。
尝试使用for ... in
代替:
for(let i in annual){
this.stockData.labels.push(annual[i].date)
this.stockData.datasets.push(annual[i].epsActual)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.