从 JavaScript NodeList 到数组的最佳转换:性能比较
之前的讨论建议使用 Array.prototype 将 NodeList 转换为数组.slice.call(nl) 是最有效的方法。然而,最近的性能基准测试对这个概念提出了挑战。
对两种方法进行基准测试
虽然 Array.prototype.slice.call(nl) 方法被广泛认为是快速的,Chromium 6 中的实验表明它比简单的 for 循环慢得多:
<code class="javascript">// Using a 'for' loop var arr = []; for(var i = 0, n; n = nl[i]; ++i) arr.push(n);</code>
考虑到 slice() 方法的感知效率,这个结果可能会令人惊讶。
进入 ES6 的 Array.from()
随着 ES6 的出现,我们现在有了一个简化的解决方案来完成这个任务:Array.from() 函数。此函数允许我们从可迭代对象创建数组,其中包括 NodeList。
<code class="javascript">// Using Array.from() let myArray = Array.from(nl)</code>
Array.from() 的性能优势
Array.from( ) 在速度方面优于 slice() 和简单的 for 循环。这归功于它的优化实现,它利用 ES6 扩展运算符来高效地创建数组。
结论
虽然将 NodeList 转换为数组的旧技术可能仍然有效有其用途,Array.from() 的引入使其成为最快、最方便的方法。通过利用 ES6 的高级功能,开发人员现在可以轻松高效地执行此转换。
以上是Array.from() 真的是将 NodeList 转换为数组的最快方法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!