编写Array.every()函数

时间:2016-09-25 03:52:11

标签: javascript arrays for-loop methods

我想知道如何使用for循环自己编写Array.every()函数。在我的例子中,for循环将为每次迭代打印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) 
}

1 个答案:

答案 0 :(得分:1)

  

&#34;在我的示例中,for循环将为每次迭代返回true 5次。&#34;

没有它赢了,因为第一个return语句立即返回而不迭代其余的项目。所以你真正实现的是.some() method的简单版本,如果至少有一个项目符合条件,则返回true

如果您只是想要一个简单的for循环实现来测试每个项目是否与条件匹配,请反转测试逻辑并在找到 not 匹配的元素后立即返回false 。如果循环中的项没有通过测试,则循环将完成,因此返回true 算账:

for(i=0;i<array.length;i++){
  if(!(array[i] < 6))
    return false;
}
return true;

您可能希望了解.every()的完整实施:MDN's .every() polyfill