JavaScript猪拉丁转换优化



总新人…寻找一些优化这个pigLatin转换器的例子。

function pigLatin(str) {
var vowels = ["A", "E", "I", "O", "U", "a", "e", "i", "o", "u"];
if (vowels.includes(str[0])) {
str = str + "way";
return str;
}

for (i = 0; i < str.length; i++) {
if (vowels.includes(str[i])) {
var flopStr = str.substring(0, [i]) + "ay";
var newStr = str.substring([i]) + flopStr;
return newStr;
}
}

if (!vowels.includes(str) === true) {
str = str + "ay";
return str;
}
}

我很高兴我至少可以写一些有用的东西。我做;但是,我们需要一些关于完成相同任务的其他方法的指导。

这是一个没有任何循环的解决方案,使用正则表达式和第一个元音

的索引。

function pigLatin(str) {
let lC = str.toLowerCase()

const vowels = ["a", "e", "i", "o", "u"];

let regex = /[aeiou]/

let fVI = lC.search(regex) // firstVowelIndex

switch(fVI) {
case 0: 
return lC+'way';
default:
return lC.substring(fVI) + lC.substring(0,fVI) + 'ay'
}
}
console.log(pigLatin('coding'))  // 'odingcay'
console.log(pigLatin('addict'))  // addictway

(您可以在您的版本中采用的改进是将字符串转换为小写并从数组中删除大写元音)

最新更新