我需要做的是将此函数转换为分割输入字符串的每个部分的位置,然后将pig latin放在每个单词上,这意味着它会在每个单词的末尾添加一个。这是我到目前为止所做的:
function pigLatin(whatWeTitle) {
var alertThis = " ";
var splitArray = whatWeTitle.split(" ");
for ( i = 0; i < splitArray.length; i++) {
alertThis = makeSentenceCase(splitArray[i]) + " ";
var newWord3 = splitArray.substring(1, whatWeTitle.length) + newWord + 'ay';
alert(newWord3);
}
}
现在,它只需要字符串的第一个字母并将其添加到结尾。它不会改变每个单词到猪拉丁语,只是整个短语。我想知道有谁可以帮我这个。感谢。
答案 0 :(得分:2)
您需要使用[i]
来获取数组中的项目:
var word = splitArray[i];
var newWord3 = word.substring(1,word.length) + word[0] + 'ay';
最好的,如果你想要结束整个新句子,那就是改变每个单词并在最后加入它们:
var splitArray = whatWeTitle.split(" ");
for ( i = 0; i < splitArray.length; i++) {
var word = splitArray[i];
splitArray[i] = word.substring(1,word.length) + word[0] + 'ay';
}
var newSentence = splitArray.join(' ');
alert(newSentence);
如果你测试一下,你会发现这个算法不喜欢你的句子中的点或逗号。如果你想要更强大的东西,你需要一个正则表达式,例如:
var newSentence = whatWeTitle.replace(/[^\. ,]+/g, function(word){
return word.slice(1) + word[0] + 'ay';
});
alert(newSentence);
这可以通过使用函数来替换每个单词来替换文本中的单词。
答案 1 :(得分:0)
这样的东西?
function pigLatin(whatWeTitle) {
var alertThis = " ";
var splitArray = whatWeTitle.split(" ");
var finalString = "";
for ( i = 0; i < splitArray.length; i++) {
finalString += splitArray[i]+ "ay ";
}
alert(finalString);
}
pigLatin("this is a test");
答案 2 :(得分:0)
您可能想要拆分第一个辅音值,然后将它们与'ay'一起追加。
我会使用正则表达式来完成此任务。 Here is a JSFiddle显示了一个示例。
第一部分是单词
var words = text.split(" ");
下一部分是每个单词的piglatinify™
words = words.map(function(word){ return pigLatinifyWord(word);});
这是piglatinify™功能
function pigLatinifyWord(word){
var result;
var specialMatches = word.match(/(\W|\D)+$/);
var specialChars;
if(specialMatches && specialMatches.length >= 0){
var specialIndex = word.indexOf(specialMatches[0]);
specialChars = word.slice(specialIndex);
word = word.substr(0, specialIndex);
}
var i = word.search(/^[^aeiou]/);
if(i >= 0){
result = word.slice(i+1) + word.slice(0, i+1) + "ay";
}
else{
result = word + "ay";
}
if(specialChars){
result += specialChars;
}
return result;
}
<强>更新强> JSFiddle示例现在包括处理非单词非数字字符