首页 > 解决方案 > 我在哪里放置我的回报真实声明

问题描述

这是一个基本的 javascript 问题,我只是想更好地理解。我试图了解我将返回真实声明放在哪里是否重要。这是示例代码:

function isValid(input) {
    for (var i = 0; i < input.length - 2; i++) {
        var charOne = input.charAt(i);
        var charTwo = input.charAt(i + 1);
        var charThree = input.charAt(i + 2);

        if (charOne === charTwo && charOne === charThree) {
            return false;
        }
        return true;
    }

}

isValid("ABB");

这将返回 true,但如果我将 return true 语句放在这里,也会返回 true:

function isValid(input) {
    for (var i = 0; i < input.length - 2; i++) {
        var charOne = input.charAt(i);
        var charTwo = input.charAt(i + 1);
        var charThree = input.charAt(i + 2);

        if (charOne === charTwo && charOne === charThree) {
            return false;
        }
    }
    return true; // Moved this return statement
}

isValid("ABB");

一种方式错误而另一种方式正确吗?

标签: javascriptfunctionboolean

解决方案


第二个,因为在每次迭代后的第一个中,您检查字符是否相等并且它会return falsereturn true在第一次迭代本身中。在第二个中,您检查所有组合,如果它从不为假,那么它必须为真。


推荐阅读