我想知道如何使用 for 循环自己编写 Array.every()
函数。在我的示例中,for 循环每次迭代都会打印 true 5 次。如何让它在如果所有值都通过时返回 true,就像 Array.every()
函数一样?
var array = [1,2,3,4,5];
console.log(array.every(function(num){return num < 6}))
// the for loop will return true 5 times
for(i=0;i<array.length;i++){
if(array[i] < 6)
console.log(true)
}
最佳答案
"In my example the for loop will return true 5 times for each iteration."
不,不会,因为第一个 return
语句会立即返回,而不会迭代其余项。所以,您实际上实现的是 .some()
method 的简单版本。 ,如果至少有一项符合条件,则返回 true
。
如果您只是想要一个简单的 for 循环实现来测试每个项目是否符合条件,请反转测试逻辑并在发现不符合条件的元素后立即返回 false
em> 匹配。如果循环中没有项目未通过测试,则循环将完成,因此返回 true
之后:
for(i=0;i<array.length;i++){
if(!(array[i] < 6))
return false;
}
return true;
您可能想看一下 .every()
的完整实现:MDN's .every()
polyfill
关于javascript - 编写 Array.every() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39683208/