对空数组使用some和every表现不一致

问题描述

对空数组使用some和every结果与预期不符合(也不符合逻辑)

[].every(item=>item===true); // > true

[].some(item=>item===true); // > false

问题出现原因

未知
every方法的输出结果不符合逻辑,不知道为什么,查阅es5无结果;但是在网络上有检索到相关内容;

解决方案

在使用数组的every方法时,先进行数组是否为空的判断.

参考资料

资料地址: JavaScript Array every() 方法

every() 方法的定义和用法

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。

注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
注意:若收到一个空数组,此方法在一切情况下都会返回 true。(Array.prototype.every()-MDN)

猜你喜欢

转载自blog.csdn.net/tianxintiandisheng/article/details/107615973