为什么这段代码不会返回false?
这个问题在这里已经有了答案:
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