即使console.log提供正确的结果,整体功能也无法运行

时间:2019-08-23 18:09:43

标签: javascript node.js typescript

猪拉丁作业。可以通过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)时,脚本返回未定义。

1 个答案:

答案 0 :(得分:0)

您的“单词”在

中未定义
const splitWord = word
    .toLowerCase()
    .trim()
    .split("");

以示例方式添加

var word = 'test';

按照脚本的第一条规则进行操作

编辑:这是如果您在调用函数时首先忘记单词:)