我不明白为什么我的函数返回未定义



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

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"));

如有任何提示,不胜感激。

需要将checkString()函数返回的值改为return

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"))

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

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"));

最新更新