[英]Why does javascript 'if statements' return undefined?
这更像是一个“为什么会发生这种情况”的问题,而不是一个故障排除问题。
我正在尝试创建一个 function 来测试一个单词是否是回文。 我最初认为我可以使用 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};
}
它返回未定义,因为您没有在任何地方使用return
关键字。
您犯的另一个错误是您正在比较两个 arrays ,它们在 memory 中引用相同的 object 它arrWord === reversedWord
将始终返回true
。
使用split('')
和reverse()
将word
转换为数组。 然后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"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.