猿问

请问下例中for循环中return和for外return,为什么会导致截然不同的结果?

function palindrome(str) {

    str = str.replace(/[\W_]/g,"").toLowerCase();

    for(var i = 0,len = str.length -1 ; i < len/2; i++) {

        if(str[i] !== str[len-i]) {

            return false;

        }        

    } 

    

    return true;

}


palindrome("almostomla") ; //false

function palindrome(str) {

    str = str.replace(/[\W_]/g,"").toLowerCase();

    for(var i = 0,len = str.length -1 ; i < len/2; i++) {

        if(str[i] !== str[len-i]) {

            return false;

        }

        return true;        

    }   

}


palindrome("almostomla") ; //true


慕森卡
浏览 429回答 1
1回答

噜噜哒

第一种,只有for循环全部完成后都不满足if才会返回true;第二种情况,第一次遍历必然触发return,只要第一次不满足if就会返回true
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答