JavaScript some和every有何区别_它们返回什么?

27次阅读

some只要有一个元素满足条件就返回true,否则false;every必须所有元素都满足才返回true,否则false;空数组调用some返回false、every返回true。

JavaScript some和every有何区别_它们返回什么?

some 只要有一个元素满足条件就返回 true,否则返回 falseevery 必须所有元素都满足条件才返回 true,否则返回 false

some:只要一个为真,整体就为真

遍历数组,遇到第一个让回调函数返回真值的元素就立即停止,并返回 true。如果全程没找到,返回 false

  • 适合用于“是否存在符合条件的项”这类判断
  • 短路执行:一旦确定结果,不再检查后续元素
  • 例子:[1, 2, 3, 4].some(x => x > 3)true(因为 4 > 3)

every:全部为真,结果才为真

遍历数组,遇到第一个让回调函数返回假值的元素就立即停止,并返回 false。如果所有元素都满足,返回 true

  • 适合用于“是否每一项都符合要求”这类校验
  • 也是短路执行:发现一个不满足就退出
  • 例子:[2, 4, 6].every(x => x % 2 === 0)true[2, 3, 4].every(x => x % 2 === 0)false

空数组的特殊情况

空数组调用 some 总是返回 false(没找到任何一个满足的);调用 every 总是返回 true(因为没有反例,逻辑上“全满足”成立)。

JavaScript some和every有何区别_它们返回什么?

Blogcast™

BlogcastTM是一个文本转语音的工具,允许用户创建播客、视频、电子学习课程的音频和音频书籍,而无需录制。

JavaScript some和every有何区别_它们返回什么? 63

查看详情 JavaScript some和every有何区别_它们返回什么?

立即学习Java免费学习笔记(深入)”;

  • [].some(() => true)false
  • [].every(() => false)true

它们都返回布尔值,不改变原数组

两者都是纯函数:只读取数组、不修改它,也不生成新数组。返回的永远是 truefalse,不是元素本身,也不是索引。

  • 别和 findFilter 混淆——后两者返回元素或新数组
  • 如果需要获取具体哪个元素满足,用 find;需要全部匹配的结果,用 filter

基本上就这些。记住口诀:some 是“有一个就行”,every 是“一个都不能少”。

以上就是javaScript some和every有何

text=ZqhQzanResources