猪拉丁作业。可以通过console.log获得正确的打印返回值,但是如果在node.js测试中运行,脚本将返回未定义的消息。
需要调试才能继续前进。
尝试将最终函数调用移到脚本的其他位置。我认为可能是因为范围界定,但这只是我的第二个JS项目,所以我真的是一个新手。
function pigLatin(word) {
// Global variables
const vowels = ["a", "e", "i", "o", "u"];
const splitWord = word
.toLowerCase()
.trim()
.split("");
// Slice Word at first Vowel to end
function firstPart(param1, param2) {
for (let v = 0; v < vowels.length; v++) {
for (let w = 0; w < splitWord.length; w++) {
if (vowels[w] === splitWord[v]) {
return `${splitWord.slice(v, splitWord.length).join("")}`;
} else if (splitWord.length === 1) {
return `${""}`;
}
}
}
}
// Slice word from First Letter to Vowel & if first letter is vowel
function secondPart(param1, param2) {
for (let v = 0; v < vowels.length; v++) {
for (let w = 0; w < splitWord.length; w++) {
if (vowels[w] === splitWord[0]) {
return `${splitWord.splice([0], [v]).join("")}yay`;
} else if (vowels[w] === splitWord[v]) {
return `${splitWord.splice([0], [v]).join("")}ay`;
} else if (splitWord.length === 1) {
return `${splitWord.join("")}yay`;
}
}
}
}
// Combine returns from firstPart and secondPart
const result1 = firstPart(vowels, splitWord);
const result2 = secondPart(vowels, splitWord);
function combine(param1, param2) {
return `${param1}${param2}`;
}
console.log(combine(result1, result2));
}
预期结果是使脚本成功运行。但是当在console.log外部调用combin(result1,result2)时,脚本返回未定义。
答案 0 :(得分:0)
您的“单词”在
中未定义const splitWord = word
.toLowerCase()
.trim()
.split("");
以示例方式添加
var word = 'test';
按照脚本的第一条规则进行操作
编辑:这是如果您在调用函数时首先忘记单词:)