Javascript 第二个for循环输出4如何。不是应该是3点吗? var-arr=[[1,],[2],[3]]; var乘积=1; 对于var i=0;i

Javascript 第二个for循环输出4如何。不是应该是3点吗? var-arr=[[1,],[2],[3]]; var乘积=1; 对于var i=0;i,javascript,arrays,loops,Javascript,Arrays,Loops,var-arr=[[1,],[2],[3]]; var乘积=1; forvar i=0;i

var-arr=[[1,],[2],[3]]; var乘积=1; forvar i=0;iconsole.logproduct 这是因为你的产品从1开始。如果它从零开始,则乘积为3。假设只有第二个循环正在运行


如果第一个循环也在运行,那么我希望结果是5。因为第一个循环后的product=2,所以从第二个循环中添加0+1+2,总共5个。

在第一个循环中,您可以获得包含嵌套数组的数组长度。 所以,您的输出是相等的:2数组有3个元素,但它们的索引从0开始,所以,0-1-2。。你有两个

var arr = [[1, ], [2], [3]];
var product = 1;

for (var i = 0; i < arr.length; i++) {
  product = i; //output: 2 (which makes sense)
};
然后是产品,初始值1被重写为值2

所以,当您运行第二个循环时,您当前会增加parent=2+0+1+2,但不会增加3,因为它不会影响循环条件

for (var i = 0; i < arr.length; i++) {
  product += i; //output: 4 (shouldn't the output 3?)
};

所以,这就是得到父级的最终结果等于2的方法。

您试过调试它吗?你会明白为什么。如果我只是复制你的代码,我的第二个产品的输出是5?实际上,产品的最终值是5。@KaustubhKhare令人惊讶的是,很多人不知道如何调试或使用断点。真是太神奇了。应该是imo学习的第一件事。还有,请看。具体来说,在发布任何代码之前介绍问题。-在问题的主体部分,首先展开标题中的摘要。解释你是如何遇到你试图解决的问题的,以及任何阻碍你自己解决问题的困难。你问题的第一段是大多数读者会看到的第二段,所以尽可能让它引人入胜,信息丰富。@bruno他的回答很有道理,假设OP实际上意味着第二个循环在第一个循环不运行的情况下运行,这可能就是OP的实际意思。@TKoL在这种情况下,Hannah N必须编辑她的答案,以清楚地指出她假设的代码,而不是OPcode@TKoL所以你是对的,你是一位绅士,在回答一个问题时,你也承认他确实是。特别是当他的回答更清楚地说明了解决方案时。