该测试的目的是获取英语单词的第一个辅音(或辅音簇),将其移到单词的末尾并加一个“ ay”。如果单词以元音开头,则只需在末尾添加“ way”。
我的主要问题是遍历字符串直到到达元音,然后将第一个辅音字母放在字符串的末尾。
我在遍历字符串直到遇到元音时遇到麻烦。您如何迭代字符串,直到第一个元音停止?在到达元音之前,您如何获得所有第一个辅音字母?我通过使用for循环来迭代该字符串,如果前几个字母是辅音,则使用“ if”语句。
function translatePigLatin(str) {
var vowel = /[aeiou]/g;
var cons = /[^aeiou]/g;
console.log(cons.test(str[2]))
var consonants = [];
var index = str.charAt(0);
console.log(str.slice(1, str.length))
for(var i = 0; i < str.length; i++){
console.log(str[i])
if(cons.test(str[i])){
consonants.push(str.charAt(i));
console.log(consonants)
var slice = str.slice(consonants.length, str.length);
}
}
return consonants + 'ay';
}
translationPigLatin(“手套”);
最佳答案
我只关注找到第一个元音的索引。然后,您可以测试该索引是否为0或其他。如果为零,只需在该索引上添加way
否则为slice:
function translatePigLatin(str) {
const vowels = ['a', 'e', 'i', 'o', 'u'];
let ind = [...str.toLowerCase()].findIndex(s => vowels.includes(s))
return ind
? str.slice(ind) + str.slice(0, ind) + 'ay' // doesn't start with vowel
: str + 'way'
}
console.log(translatePigLatin('glove'))
console.log(translatePigLatin('apple'))
console.log(translatePigLatin('Mark'))
console.log(translatePigLatin('Javascript'))
我不确定对于没有像
rhythm
这样的元音的单词的小写字母,猪拉丁规则是什么。