在Typescript中使用for-loop時,出於某種原因for循環會更新整個數組。下面是代碼:Javascript(Typescript)嵌套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)。 這段代碼的作用如下:
如果選中, 將引用的outerTab [0]中的innerTab複製到outerTab [1]。沒關係。 然後, 它將來自outerTabs [1]和outerTabs [0]的... innerTabs [j] .OuterTabId設置爲this.outerTabs [1] .Id。
有人能解釋一下這裏發生了什麼嗎?爲什麼outerTab [0]也更新了?
謝謝。在我完整的例子中,Object.assign不起作用,但它讓我走上了正確的軌道。 我克隆了'this.outerTabs [this.referencedOuterTab] .InnerTabs',然後代碼表現得像它應該有的那樣。 –