我正在构建一个小 d&d 应用程序来练习以角度传递数据组件,我遇到了一个奇怪的问题。
我从 API 调用中获取了一个“怪物”对象,然后将其填充到视图中一定次数。我正在尝试通过添加索引来更改其中一个值“名称” - 简单 - 获取“名称”添加和索引。我正在获取“名称”的值来更改它,然后将其推送到组件中保存的数组 - 一切正常。我认为对于循环的下一次迭代,原始值应该保持不变,但事实并非如此。我在这里的范围内不理解的东西。
试图只发布一些代码,因为我知道问题出在哪里,而且我知道它是一个范围问题,我只想知道为什么这是一个我不熟悉的概念。使用
export class CombatComponent implements OnInit {
selected:number;
monsters:any[] = []
addedMonsters:any[] =[]
monsterNumber:number = 0; <----this is being passed from a form - its working
constructor( private ms:MonsterService) { }
<-dont want to post the entire function because this is where the issue lies ->
this.$monsterData.subscribe(data =>{
this.currentMonster=data;
for (let i = 0 ; i<this.monsterNumber; i++){
let originalName = this.currentMonster.name;
console.log(this.currentMonster.name)
this.monsters.push(this.currentMonster)
let newName = this.monsters[i]['name'] = this.currentMonster.name +" " + `${i+1}`
this.monsters[i].name = newName
console.log(this.monsters)
}
我的问题是,在第一次迭代之后,我认为应该发生的是一个带有名称 + 索引的数组。真正发生的是第二次通过 currentMonster 的“名称”值更改为原始值 + 索引。我在这里不理解范围是什么?
米脂
幕布斯7119047
HUWWW
相关分类