2015-02-09 69 views
0

新手程序員在這裏,我試圖在目標是向後打印一個字符串的練習。這裏是我的代碼:JavaScript的循環將不會迭代

function firstReverse(str) { 
    for(var i=str.length - 1; i >= 0;i --) { 
     return(str[i]); 
    } 
}; 
firstReverse("riyad"); 

我一直得到字母「d」的返回,但不是整個字符串。不知道這裏有什麼問題嗎?請幫忙!

+5

第一回後,你離開的功能。當你執行'return'時,該方法被放棄,之後沒有其他任何執行。 – 2015-02-09 18:12:47

+1

你需要看看'return'函數的作用。這是你問題的關鍵。 – scrappedcola 2015-02-09 18:13:04

+1

是的,你的函數在第一次迭代中返回,所以你只會得到最後一個字母。你不能有一個返回語句,因爲它立即退出函數。將答案保存在變量中,然後在for循環之後返回變量。 – 2015-02-09 18:13:46

回答

1

你可以試試這個:

function firstReverse(str) { 
    for(var i=str.length - 1; i >= 0;i --) { 
     console.log(str[i]); 
    } 
}; 

我不斷收到字母「d」的迴歸,而不是整個字符串

這是合理的,你拿這個輸出,因爲您的代碼第一次進入for語句時,由於return語句,它將從該語句退出。換句話說,你的陳述只會在第一步執行。

function firstReverse(str) { 
 
    for(var i=str.length - 1; i >= 0;i --) { 
 
     document.write(str[i]); 
 
    } 
 
}; 
 

 
firstReverse("riyad");

+0

請不要鼓勵初學者使用'document .WRITE()'。雖然它可能對測試程序很有用,但出於各種原因,您很難在真實網頁中使用它。 – jfriend00 2015-02-09 18:15:08

+0

@ jfriend00當然。只是想在行動中這樣做。謝謝 – Christos 2015-02-09 18:19:10

1

的問題是,回報聲明打破你的循環和返回的第一個字母就愈大。

如果您想要反轉一個字符串 - 您可以嘗試將其轉換爲數組,將其反轉並將新數組的元素連接回字符串。我認爲它是一個簡單的解決方案下面是一段代碼:

function reverse(str) { 
 
    return str.split('').reverse().join(''); 
 
} 
 

 
console.log(reverse('abc'));