angular - 以角度访问此对象时未定义
问题描述
我有 2 个对象 OldAnswer 和 NewAnswer。我正在尝试将 OldAnswer 对象数组转换为 NewAnswer 对象数组。
export class AnswerComponent implements OnInit {
answers: OldAnswer[] = [/* some data */];
newanswers: NewAnswer[];
constructor() {
this.answers.forEach(function (answer) {
answer.answers.forEach(function (a){
for (var key in a) {
text = // some logic"";
}
// exception in below line
this.newanswers.push({id: answer.observationId,answer: text});
});
});
}
}
但我得到“不能在未定义上调用新答案”。为什么this
对象undefined
在这里而不是在访问答案时?
解决方案
你声明了数组但没有初始化。使固定:
newanswers: NewAnswer[] = [];
您还需要使用箭头功能,以便您的范围不会改变
this.answers.forEach(answer => {
answer.answers.forEach( (a) => {
for (var key in a) {
text = // some logic"";
} // exception in below line
this.newanswers.push({id: answer.observationId,answer: text});
}); }); }
推荐阅读
- javascript - 如何更新页面上的元素 Puppeteer
- amazon-web-services - AWS SQS 流未关闭
- mongodb - MongoDB 控制的事务中止
- vba - 优化查找超过 200,000 个数据集的重复值
- delphi - Delphi 本地化支持
- python - 使用 pyrtfolio 在 Python 中创建投资组合
- kubernetes - 在创建 Helm 应用程序图表时,我们如何指定依赖配置值?
- machine-learning - 使用管道和 GridSearchCV 的多维降维技术
- kedro - Kedro 是否支持检查点/结果缓存?
- java - JavaFX 如何区分 keyPressed X 和 Keys X + Y 的组合