我正在编写一个有角度的应用程序,并创建了一组名为 Workbooks 的自定义服务,每个都有一组名为 Views 的自定义服务。我用一个简单的 for 循环填充数组,但由于某种原因,这会产生意想不到的结果:
第一次迭代后,数组中有一个工作簿:
Workbook 1
在第二个之后,两个名为 workbook 2的工作簿:Workbook 2
Workbook 2
第三次之后:Workbook 3
Workbook 3
Workbook 3
等等。这怎么可能发生?这是创建工作簿并将它们添加到数组的代码的简化版本:
for (var i = 0; i < 3; i++) {
var workbook = Workbook;
workbook.setTitle("workbook " + (i + 1));
for (var j = 0; j <2; j++ ) {
var view = View;
view.setTitle("view " + (j + 1));
workbook.addView(view);
}
workbooks[i] = workbook;
//this next for loop can be used to print the array as described
for (var k = 0; k < workbooks.length; k++) {
console.log(workbooks[k].getTitle());
}
}
return workbooks;
这怎么可能发生?第 i 个工作簿被分配一个标题,然后分配给数组中的第 i 个点。什么时候i
是 2,如何将名为工作簿的工作簿Workbook 3
分配到数组中的第 0 和第 1 个位置以及第 2 个位置?
作为参考,这里是应用程序中相关代码的plunker 。谢谢!