2015-12-21 41 views
1

我想打印出「w3resource」向後正確數量的循環。爲什麼5次循環結束?如果我改變i < stringBecomesArray.lengthi < 10它的工作原理。For循環不通過的時候

var string = "w3resource"; 
var stringBecomesArray = string.split(""); 

for (var i = 0; i < stringBecomesArray.length; i++){ 
    var newString = []; 
    newString[i] = stringBecomesArray.pop(); 
    console.log(newString); 
} 
+7

每次調用'.pop()'時,'.length'都會改變。 – Pointy

回答

2

正如在評論中提到一個人,叫.pop消除對字符串的結尾最後一個元素,使得它更短。

你可能想使用while循環,就像這樣:

var str = 'w3resource'; 
var strArr = str.split(''); 
var newStr = ''; 

while (strArr.length > 0){ 
    newStr += strArr.pop(); 
} 

console.log(newStr); 

而且,你不需要使用.split,您可以訪問一個字符串像數組。使用for循環和反向迭代,您可以這樣做:

var str = 'w3resource'; 
var newStr = ''; 
var i; 

for (i = str.length - 1; i >= 0; i--){ 
    newStr += str[i] 
} 

console.log(newStr); 
1

最好的方式做到這一點實際上倒退雖然詞:

var string = "w3resource"; 
var newString = ""; 

for (var i = string.length; i > 0; i--){ 
    newString += string[i]; 
} 

console.log(newString);