javascript - 编写 Array.every() 函数

标签 javascript arrays for-loop methods

我想知道如何使用 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/

相关文章:

javascript - 为什么需要设置原型(prototype)构造函数?

javascript - 如何在 Sailsjs 中的文件夹中提供图像?

javascript - 如何匹配所有值而不让 for-in 循环中的闭包覆盖对象?

r - 在R中: how to sum a variable by group between two dates

r - 当要填充的条目数可能不同时,如何仅填充一行中的特定值

javascript - 检索 Firestore 中的文档并根据用户的输入进行验证

javascript - 撤消/重做不能正常工作,缩放后的绘画也不能正常工作

c++ - 有没有办法在C++字符数组中输入所需数量的字符

javascript - 异步显示表单元素

javascript - 如何在 javascript 中创建一个包含长度为 x 的数字字符串的数组?