2016-03-06 107 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