【问题标题】:How many Returns with every() and other iterative methods?every() 和其他迭代方法有多少返回?
【发布时间】:2017-09-26 09:02:55
【问题描述】:

这是一些 Javascripts 数组方法的一般问题。以以下为例:

var numbers = new Array(12, 5, 8, 130, 44);

function isBigEnough(element, index, array) {
  return element >= 10;
}

alert(numbers.every(isBigEnough));

这将返回 FALSE。 当我第一次阅读这些迭代数组的方法(例如every、some、filter、forEach、map)时,我认为函数isBigEnough 会为每个元素调用。所以在上面的例子中,我会认为 isBigEnough 会被调用 5 次,有 5 个返回值。显然情况并非如此。

我现在猜测该方法调用了该函数 5 次,但 Return 实际上不会返回任何内容,直到所有元素都为 TRUE 或找到 FALSE。

有人知道显示这些迭代方法的过程或流程的流程图或图形吗?

谢谢

【问题讨论】:

  • every() 将在其中一个回调返回 false 时立即停止。你真的仔细阅读了吗the documentation of that function?
  • 我确实做到了,尽管再读 2 遍会有帮助。我没有很好地表达我的问题,因为我并不是真的在猜测。但我只是在寻找该方法的图形流程图。也许这样的流程图太不言自明了,但不是必需的。

标签: javascript


【解决方案1】:

这些方法的 Mozilla 文档非常好。对于everysome,它特别声明方法在找到虚假/真实值时立即返回。

每一个

every 方法对数组中存在的每个元素执行一次提供的回调函数,直到找到一个回调函数返回一个假值(转换为布尔值时变为假的值)。如果找到这样的元素,every 方法立即返回 false。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every

一些

some() 对数组中存在的每个元素执行一次回调函数,直到找到一个回调函数返回真值。如果找到这样的元素, some() 立即返回 true

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

【讨论】:

  • 是的,我明白了。我同意文档很好。我只是想知道是否有已知的图形显示该方法的流程。也许我的问题是寻找一些晦涩难懂或过于明显的东西。
  • @DougSmith,我认为没有足够的变化来表明这种需求,而且一般来说,这些功能可以满足人们的期望......一旦知道答案,它们就会结束。
猜你喜欢
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多