gpt4 book ai didi

javascript - Array.prototype.every 相对于 Array.prototype.forEach 的缺点?

转载 作者:行者123 更新时间:2023-11-30 10:21:47 27 4
gpt4 key购买 nike

这两种方法都遍历当前数组的元素,但只有 Array.prototype.every 允许您跳出循环,类似于使用 break 退出 for 循环的方式。

当查看 browser compatibility matrixes 时两者似乎都受到相同浏览器的支持。

与我错过的 forEach 相比,Array.prototype.every 是否有任何缺点(性能、可读性等),或者为什么 every 不是更多常见?

这里的主要要点是,为了可读性,大多数时候我想使用 forEach 来替代经典的 for 循环,但是考虑到没有办法跳出 for-each 循环, every 在这里似乎更等同。 MDN 中提到了使用 every 的选项.

最佳答案

他们有非常不同的目的。 forEach 为每个元素执行一个具有副作用(不是很实用)的函数并且不返回任何内容,而 every 是一个功能方法来测试是否所有元素都满足给定的谓词并返回一个 bool 值。此外,every 确实需要一个返回 boolean 的回调 - 大多数 forEach 回调不会。

举个例子:

> [1,2,3].forEach(console.log)
1
2
3
undefined
> [1,2,3].every(console.log)
1
false

如果您想使用迭代方法并且需要突破,那么是的,您可能会滥用 some/every,但这不是它们的目的。请注意,通过返回 bool 值来打破循环不会带来更好的可读性:-)我建议仅在可以使用返回值时才使用它们,即如果您需要知道循环是否过早中止。

关于javascript - Array.prototype.every 相对于 Array.prototype.forEach 的缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21261339/

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