该测试的目的是获取英语单词的第一个辅音(或辅音簇),将其移到单词的末尾并加一个“ 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这样的元音的单词的小写字母,猪拉丁规则是什么。

09-30 15:13