[英]Nested loops var declaration
我想打印這個
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
經過多次猜測,代碼看起來像這樣
var a=5;
for (var i = 1; i <= a; i++) {
var result="";
for (var j = 1; j <= a; j++) {
result +=(i+j - 1)+ " ";
}
console.log(result);
}
但是我仍然不太明白為什么如果 var 結果聲明在其他地方(例如循環之外)結果完全不同。
它不是為var
提升的聲明,而是每行的第一個值。
var a = 5, result; for (var i = 1; i <= a; i++) { result = ""; for (var j = 1; j <= a; j++) { result += (i + j - 1) + " "; } console.log(result); }
您可以將result
聲明從循環中取出,如下所示:
var a = 5, result;
for (...
...
但是您必須在每次外部循環迭代中清除它,否則每次迭代它會打印不斷增加的重復模式行。
最終代碼是:
var a = 5, result;
for (var i = 1; i <= a; i++) {
result = ""; //Clearing happens here.
for (var j = 1; j <= a; j++) {
result += (i + j - 1) + " ";
}
console.log(result);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.