我已经制定了基准来检查几种迭代数组的方法的性能。
https://jsperf.com/extended-array-loops-performance
有人可以解释为什么every
方法如此强大吗?它比任何其他方法快90%以上,甚至比那些类似的方法更加奇怪
答案 0 :(得分:6)
因为你只运行一次。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="menu"><a href="#">link 1</a>
<ul class="submenu">
<li><a href="#">inlink 1</a></li>
<li><a href="#">inlink 2</a></li>
</ul>
</li>
<li class="menu"><a href="#">link 2</a>
<ul class="submenu">
<li><a href="#">inlink 1</a></li>
<li><a href="#">inlink 2</a></li>
</ul>
</li>
</ul>
将循环遍历元素,直到找到falsey值,此时它将返回。
由于您的基准测试不会返回任何内容,因此every()
为undefined
,因此它只运行一次。所有其他循环都会遍历所有元素。
将您的测试更改为:
falsey
它应与其他人保持一致。