2016-03-06 109 views
0

我在開始計算機科學課,我真的很想幫助我當前的任務。這項任務是製作一個將英文單詞翻譯成拉丁文的程序。它從用戶獲得輸入,然後吐出翻譯的字符串。例如,如果輸入「hello world」,輸出應該是「ellohay orldway」。但是,如果單詞的第一個字母是元音字母,它會在最後加上「ay」,而不會將第一個字母帶到後面。 分配的要求是我必須在我的代碼中使用兩個函數。這是我迄今爲止的代碼。對不起,它不是很完整。如何將英文單詞翻譯成豬拉丁文使用Javascript?

是否有人願意讓我知道下一步是什麼?

var wordInput = prompt("Please enter a word to be translated into pig latin.").toLowerCase(); 

var myArray = wordInput.split(" "); 

var vowel = function(word){ 
    switch (word.charAt(0)) { 
    case 'a': 
    return true; 
    break; 
    case 'e': 
    return true; 
    break; 
    case 'i': 
    return true; 
    break; 
    case 'o': 
    return true; 
    break; 
    case 'u': 
    return true; 
    break; 
    default: 
    return false; 
    break; 

alert(wordInput + "ay") 
} 
} 

var convertWord = function(word){ 
    return wordInput.substring(1) + wordInput.substring(0,1); 
} 


convertWord(); 

var res = wordInput.charAt(0) 
+0

既然你已經開始爲什麼不嘗試angularjs1.x和ngtranslate他們是相當簡單的翻譯和本地化功能。值得看看 – Gary

回答

0

有趣的問題。 也許在第二個功能,你可以檢查看看,如果你有元音:

vowel(word); 
if true --> add 'ay' 
if false --> swap first letter to end, then at 'ay' 
0

我的解決方案的算法:

function translatePigLatin(str) { 

    var vowels = ['a','e','i','o','u']; 
    var slicedArr = []; 
    var newStr = ''; 

    if (vowels.indexOf(str[0]) >= 0) { // First letter is a vowel, translate immediately 
    return str + 'way'; 
    } 

    for (var i=0; i<str.length; i++){ 
    if (vowels.indexOf(str[i]) >= 0) { // Vowel 
     return newStr + slicedArr.join("") + 'ay'; 
    } else { // Consonant 
     // Keep slicing from string until you hit a vowel 
     slicedArr.push(str[i]); 
     newStr = str.slice(i+1); 
    } 
    } 

} 
+0

請不要添加[相同的答案](http://stackoverflow.com/a/42003680/4687348)多個問題。回答最好的一個,並將其餘標記爲重複。請參閱[是否可以爲幾個問題添加重複答案?](http://meta.stackexchange.com/q/104227/347985) – FelixSFD