首页  >  文章  >  web前端  >  `slice()` 仍然是将 NodeList 转换为数组的最快方法吗?

`slice()` 仍然是将 NodeList 转换为数组的最快方法吗?

DDD
DDD原创
2024-10-27 22:55:30828浏览

 Is `slice()` Still The Fastest Way to Convert a NodeList to an Array?

将 JavaScript NodeList 转换为数组:速度注意事项

之前关于将 NodeList 转换为数组的主题的讨论声称使用 slice()方法是最有效的方法。然而,最近的基准测试揭示了一个令人惊讶的发现。

基准观察

在 Chromium 6 上进行的实验中,发现使用简单的方法从 NodeList 创建数组for 循环的性能比 slice() 方法高出三倍以上。这个结果与之前有关 slice() 优越性的断言相冲突。

可能的解释

这种差异的原因可能源于浏览器特定的优化或 JavaScript 中的差异引擎实现。在这种情况下,Chromium 引擎可能会更有效地处理 for 循环。

ES6 的替代解决方案

随着 ES6 的出现,一种新的简洁解决方案可用:Array.from() 函数。此函数可以快速轻松地从任何可迭代对象(包括 NodeList)创建数组。

// nl is a NodeList
let myArray = Array.from(nl)

结论

虽然 for 循环方法在某些情况下可能会提供令人惊讶的速度浏览器中,Array.from() 函数提供了一种现代的跨平台解决方案,用于将 NodeList 转换为数组。

以上是`slice()` 仍然是将 NodeList 转换为数组的最快方法吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn