本文主要是介绍对空数组使用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)
这篇关于对空数组使用some和every表现不一致的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!