javascript - 错误类型错误:res.forEach 不是函数
问题描述
我有一个HTML
代码,如下所示。
<div *ngIf="chart" class="col-xl-4 col-lg-6">
<div class="card cardColor mb-3">
<div class="card-header headColor">
<img class="img-fluid" src="../../../assets/images/chart-bars-box-16-white.png" />
<b>Issue Chart</b>
</div>
<div class="card-body">
<canvas id="canvas">{{ chart }}</canvas>
</div>
</div>
</div>
我有一个从中提取数据的 API。
url = 'https://api.myjson.com/bins/1dnpid';
这是折线图的代码:
// line graph
this.httpClient.get(this.url).subscribe((res: Data[]) => {
res.forEach(y => {
this.year.push(y.year);
this.price.push(y.price);
});
this.chart = new Chart('canvas', {
type: 'line',
data: {
labels: this.year,
datasets: [
{
data: this.price,
borderColor: '#6ea204',
fill: false
}
]
},
options: {
legend: {
display: false
},
scales: {
xAxes: [{
display: true
}],
yAxes: [{
display: true
}],
}
}
});
});
有一个管理数据的界面:
export interface Data {
year: String;
price: number;
}
每当我在浏览器中运行它时,都会出现以下错误:
ERROR TypeError: res.forEach is not a function at SafeSubscriber._next (dashboard.component.ts:130)
可能是什么问题呢?
解决方案
您收到此错误是因为对象本身没有foreach
方法,而数组有。
您的 API 返回一个带有results
键的对象,很可能是您想要迭代的数组。
我相信你想res.results.forEach
改用。
推荐阅读
- python - opencv python/边界框
- kotlin-js - 如何在 Kotlin/JS 项目中执行 Node 命令
- html - 输入框灰色文本
- javascript - 如何在引导工具提示中创建跨度元素
- javascript - 猫头鹰旋转木马没有响应
- android - 如何为实时数据库设置安全规则,但允许注册新用户并创建哈希图?
- django - Django 模型的 OneToOne 关系 - AttributeError: object has no attribute
- excel - 是否存在通过引用传递元素的列表或数组?
- javascript - 如何从在 Android WebView 中打开的网页中单击按钮
- selector - 如何在 webdriver io 的选择器中使用变量