【问题标题】:I don't understand why my function returns undefined [duplicate]我不明白为什么我的函数返回 undefined [重复]
【发布时间】:2021-10-20 06:47:33
【问题描述】:

我正在尝试创建一个函数来检查给定字符串是否为回文。我在使用大写字母时遇到了一些困难,但我认为(?)现在已经解决了。问题是当我将我的字符串传递给 checkString() 函数时,它返回 undefined 并且我不知道为什么。

const palindromes = function(string) {
  const originalString = string;
  const reverseString = string.split("").reverse().join("");
  const check = reverseString.slice(-1);

  if (check === check.toUpperCase()) {
    const newString = reverseString.slice(0, 1).toUpperCase() + originalString.slice(1);
    checkString(originalString, newString);
  } else {
    checkString(originalString, reverseString);
  };
};


const checkString = function(originalString, newString) {
  if (originalString === newString) {
    return true;
  };
  return false;
};

console.log(palindromes("Racecar"));

任何提示将不胜感激。

【问题讨论】:

  • 您不会在palindromes 中返回任何内容……是吗?不,刚刚检查,回文中没有return
  • 只需在回文函数中的checkString 之前添加一个返回即可。
  • 代码提示,在checkString,你可以return originalString === newString
  • @Bravo 实际上,不需要 === 的函数。可以直接比较。
  • @VLAZ 确实可以

标签: javascript


【解决方案1】:

你可以让你的代码变得更好:

const palindromes = function(string) {
  const originalString = string.toUpperCase(); // make string to uppercase
  const reverseString = originalString.split("").reverse().join(""); // reverse string
  return originalString === reverseString; // inline compare and RETURN the value!
};


console.log(palindromes("Racecar"));
console.log(palindromes("stackoverflow"));

【讨论】:

    【解决方案2】:

    你需要returncheckString()函数返回的值。

    const palindromes = function(string) {
      const originalString = string;
      const reverseString = string.split("").reverse().join("");
      const check = reverseString.slice(-1);
    
      if (check === check.toUpperCase()) {
        const newString = reverseString.slice(0, 1).toUpperCase() + originalString.slice(1);
        return checkString(originalString, newString);
      } else {
        return checkString(originalString, reverseString);
      };
    };
    
    
    const checkString = function(originalString, newString) {
      if (originalString === newString) {
        return true;
      };
      return false;
    };
    
    console.log(palindromes("Racecar"))

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 1970-01-01
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 1970-01-01
      • 2011-09-14
      相关资源
      最近更新 更多