Javascript 使用回调函数“every”时出错
因此,我尝试重新创建every方法,作为有说服力的JavaScript练习的一部分。我不明白为什么第二版不行,第一版行 这本书说,只有当谓词为数组的所有元素返回true时,every才返回true 第一版 第二版Javascript 使用回调函数“every”时出错,javascript,callback,Javascript,Callback,因此,我尝试重新创建every方法,作为有说服力的JavaScript练习的一部分。我不明白为什么第二版不行,第一版行 这本书说,只有当谓词为数组的所有元素返回true时,every才返回true 第一版 第二版 在版本2中,您将从forEach回调函数返回。它返回到forEach函数,并继续到下一个迭代,它不会从每个函数返回。在版本2中,您是从forEach回调函数返回的。它返回到forEach函数,并继续到下一个迭代,而不是从每个函数返回。假设您有这些函数:函数foo{return'foo'
在版本2中,您将从forEach回调函数返回。它返回到forEach函数,并继续到下一个迭代,它不会从每个函数返回。在版本2中,您是从forEach回调函数返回的。它返回到forEach函数,并继续到下一个迭代,而不是从每个函数返回。假设您有这些函数:函数foo{return'foo';};函数栏{foo;返回'bar';};。当我叫酒吧时,它会返回什么?然后试着把它转换到你的版本2中,想象你有以下函数:函数foo{return'foo';};函数栏{foo;返回'bar';};。当我叫酒吧时,它会返回什么?然后试着把它转换到你的第二版。那么有没有办法从each函数返回呢?没有。你写第一个版本的方式是正常的。有趣。那么有没有办法从each函数返回呢?没有。你写第一个版本的方式是正常的。
function every(array, test)
{
var boolean = true;
array.forEach(function(ele)
{
if (!test(ele))
boolean = false;
});
return boolean;
}
console.log(every([NaN, NaN, NaN], isNaN));
// → true
console.log(every([NaN, NaN, 4], isNaN));
// → false
function every(array, test)
{
array.forEach(function(ele)
{
if (!test(ele))
return false;
});
return true;
}
console.log(every([NaN, NaN, NaN], isNaN));
// → true
console.log(every([NaN, NaN, 4], isNaN));
// → true