这更像是一个“为什么会这样”的问题,而不是一个疑难解答的问题。
我正在尝试创建一个函数来测试一个单词是否为回文。我最初认为我可以使用if语句,它比较单词和何时颠倒。然而,if语句给了我未定义的信息。当我定期比较它(word === reverseWord)时,返回的结果是真或假。我的问题是,if语句中到底发生了什么?谢谢!
const palindromes = function(word) {
*//Turn word into an array*
var arrWord = Array.from(word);
*//Reverse the array*
var reversedWord = arrWord.reverse();
*//This is true*
return arrWord === reversedWord;
//But this is undefined?
if (arrWord === reversedWord) {true} else {false};
}发布于 2020-11-28 03:50:11
它返回undefined,因为您没有在任何地方使用return关键字。
你正在犯的另一个错误是,你在比较两个引用内存中相同对象的数组时,arrWord === reversedWord将总是返回true。
使用split('')将word转换为数组,然后对其执行reverse()。然后是join('')。最后比较反转字符串和word
const palindromes = function(word) {
var reversedWord = word.split('').reverse().join('');
console.log(word === reversedWord);
if (word === reversedWord) {
return true
} else {
return false
};
}
console.log(palindromes("aba"))
console.log(palindromes("ba"))
代码可以简化为一行。
const palindromes = (word) => word.split('').reverse().join('') === word
console.log(palindromes("aba"))
console.log(palindromes("ba"))
https://stackoverflow.com/questions/65043107
复制相似问题