我正在使用for循環移動每個字母(「a」變成「b」,「z」變成「a」)來更改字符串,但每當函數循環時,它不存儲新值。當ABC應該得到「BCD」時,我得到循環「BBC,ACD,ABD」的功能。用for循環不斷更新變量
我是新來的編碼,我肯定有一個更簡單的方法來做到這一點(它被歸類爲簡單在coderbyte挑戰),但我想嘗試和解決這個問題,因爲這是我想出的。
提示>回答。我被困在這個上的時間越長,我就越能確定這個代碼的工作原理,特別是因爲我感覺如此親密!
function moveLetter(str) {
var index = ["a","b","c"..."z", "a"] //sorry didn't want to type out the whole alphabet and my code just crashed
var alpha = "zabcdefghijklmnopqrstuvwxyz"
var new = ""
for (c=0; c<=str.length-1; c++) {
if (str.charAt(c) == " ")
str.charAt(c) == " "; //I did this to circumvent the "undefined" error I would get when the loop hits a space
else
str = str.replace(str.charAt(c), index[alpha.search(str.charAt(c)))];
}
return str
}
是的,這是代碼做一些比較簡單的一個醜陋的科學怪人。
我的想法是讓循環遍歷給定字符串的每個字符,並根據我製作的索引數組替換它。
核心問題(除了我爲什麼做這種方式)是「我怎麼讓變量保持第一循環之後的變化,所以它看起來是這樣的:
ABC - > BBC - > BCC - > BCD
感謝大家的幫助
'新變種= 「」'應該拋出一個錯誤。 – canon
您可能感興趣的['String.prototype.charCodeAt()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt)和['String .fromCharCode()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode)。第一個給出了字符串中字符的數字代碼,第二個給出了字符代碼中的字符串。用這些,你可以用簡單的算術運算來移動字符。 – Pointy