【发布时间】:2016-11-30 08:24:58
【问题描述】:
在 Typescript 中使用 for 循环时,由于某种原因,for 循环会更新整个数组。代码如下:
UpdatesToAllSelectedTabs() {
if (this.selectedOuterTabs[1]) {
this.outerTabs[1].InnerTabs = this.outerTabs[this.referencedOuterTab].InnerTabs;
for (let j = 0; j < this.outerTabs[1].InnerTabs.length; j++) {
this.outerTabs[1].InnerTabs[j].OuterTabId = this.outerTabs[1].Id;
}
}
}
代码的第一个版本也有外部循环,但它也不能与固定的外部索引(在上面的示例中 = 1)一起正常工作。 这段代码的作用如下:
如果选择, 将innerTabs 从引用的outerTab[0] 复制到outerTab[1]。没关系。 然后, 它将 ...innerTabs[j].OuterTabId 从 outerTabs[1] 和 outerTabs[0] 设置为 this.outerTabs[1].Id。
有人可以解释一下这里发生了什么吗?为什么 outerTab[0] 也更新了?
【问题讨论】:
标签: javascript for-loop typescript