2013-03-21 41 views
0

我想要做的是編寫一個函數,將字符串中的每個單詞修改爲明膠。對於每個單詞,它都需要根據它是否以元音開始來改變它。它需要在每個單詞的末尾添加一個輔音,每個以元音開頭的單詞都需要添加到最後。最後,對於每個單詞,都需要在添加這些sufixx之前將該單詞的第一個字母放在末尾。有什麼建議?修改函數的每個單詞

function pigLatin(whatWeTitle) { 
      var alertThis = " "; 
      var whatWeTitle = document.getElementById("isLeaper").value; 
      var splitArray = whatWeTitle.split(" "); 
      var finalString = ""; 
      for (i = 0; i < splitArray.length; i++) { 
       finalString += splitArray[i] + "ay "; 
      } 
      alert(finalString); 
     } 
+1

看起來像你在正確的軌道上。你有什麼特別的問題嗎?它看起來像少量簡單的字符串邏輯就是你完成作業所需要添加的所有東西。這裏有一點讓你滾動......你可以使用[String.substring()](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring)來查找一個字的第一個字母。請按照鏈接閱讀文檔,這將解釋一切。它還包含有用的示例。祝你好運! – jahroy 2013-03-21 03:27:11

回答

1

這看起來像一個有點好玩,這裏是一個基於String.prototype.replace的功能,它可以接受一個函數替換:

function textToPig(t) { 
    var vowels = {a:'a',e:'e',i:'i',o:'o'}; 

    return t.replace(/\w+/g, function(s){ 
    var first = s.substring(0,1); 
    var rest = s.substring(1); 

    return rest + first + (first in vowels? 'ay' : 'way') 

    }); 
} 

textToPig('foo bar each other ') // "oofway arbway acheay theroay " 

這是你想要的嗎?小心連字符。

+0

非常好。感謝您提供規範鏈接。我從來沒有見過(這是壞的)。現在我已經收到了書籤! – jahroy 2013-03-21 05:08:01