为什么这段代码不会返回false?

这个问题在这里已经有了答案:

  • 如何使Array.forEach短路像调用break? 24个答案

  • return false是返回forEach使用的匿名函数。 所以它不会为every返回任何东西。 如果你想使用forEach并返回false,你必须这样做:

    function every(array, predictate) {
        var result = true;
    
        array.forEach(function(x) {
            if (!predictate(x)) {
                result = false;
            }
        });
    
        return result;
    }
    

    你的return false语句是针对forEach回调函数的,而不是针对外部的every

    除非您将其更改为如下所示,否则every将始终返回true:

    function every(array, predictate){
        var retValue = true;
        array.forEach(function(x){
        if (!predictate(x))
            {
            retValue = false;
            }
        });
        return retValue;
    }
    
    链接地址: http://www.djcxy.com/p/70059.html

    上一篇: Why this code doesn't return false?

    下一篇: Where does the return value go for a forEach callback?