gpt4 book ai didi

javascript - 为什么 Array.prototype.some() 对于空集不返回 true ?

转载 作者:行者123 更新时间:2023-12-01 00:21:07 25 4
gpt4 key购买 nike

我刚刚在 MDN 页面上找到了这篇文章 Array.prototype.every() :

every acts like the "for all" quantifier in mathematics. In particular, for an empty array, it returns true. (It is vacuously true that all elements of the empty set satisfy any given condition.)

事实确实如此,正如我们所看到的:

console.log([].every(a => a === "any possible value here"))

但是:

console.log([].some(a => a === "any possible value here"))

问题:

冒着因基于意见而被关闭的风险,这是我的问题:为什么 ECMA 不选择对待 Array.prototype.some()的回调对于空数组来说是空真?

在我看来,如果“空集的所有元素都满足任何给定条件是空洞的真”,正如 MDN 页面所说,那么就可以得出“它空集合的任何元素满足任何给定条件是空洞的”。例如,如果我们使用维基百科的示例,

all cell phones in the room are turned on and turned off

我们可以说“房间里的一些手机已关闭”同样(且空洞)正确。不是这样吗?

最佳答案

使用.every,您可以询问列表中的所有项目是否都满足某个条件。如果该列表为空,则说明没有不满足条件的项目。存在的每一项(也没有)都满足给定的条件,因此 .every 是空洞的 true。

使用.some,您可以询问列表中的任何项是否满足条件。如果没有项目,则没有满足条件的项目。所以不,空列表中没有任何内容可以满足条件,并且它是空洞的错误。

关于javascript - 为什么 Array.prototype.some() 对于空集不返回 true ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com