2015-12-21 68 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);