【问题标题】:writing the Array.every() function编写 Array.every() 函数
【发布时间】:2017-02-02 15:19:29
【问题描述】:

我想知道如何使用 for 循环自己编写 Array.every() 函数。在我的示例中,for 循环将为每次迭代打印 5 次 true。 如果所有值都通过了,如Array.every() 函数,我怎样才能让它返回true?

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) 
}

【问题讨论】:

标签: javascript arrays for-loop methods


【解决方案1】:

“在我的示例中,for 循环将在每次迭代中返回 5 次 true。”

不会,因为第一个return 语句会立即返回,而不会遍历其余项目。所以实际上您实现的是.some() method 的简单版本,如果至少有一项符合条件,则返回true

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

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

你可能想看看.every()的完整实现:​​MDN's .every() polyfill

【讨论】:

  • 是的,我的意思是说如果我 console.log() 它会打印 5 次。这正是我需要的,谢谢。
猜你喜欢
  • 2018-06-20
  • 2021-12-04
  • 2021-03-06
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多