繁体   English   中英

为什么 javascript 'if statements' 返回未定义?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM