从 NodeList 转换为 Array:揭开最快的方法
之前的讨论建议利用 Array.prototype.slice.call(nl)方法提供了从 NodeList 到 Array 的最有效的转换。然而,最近的基准测试揭示了一个惊人的不同现实。与流行的看法相反,传统的 for 循环方法 for(var i = 0, n; n = nl[i]; i) arr.push(n); 比上述方法高出三倍。
这一令人费解的发现激发了人们的好奇心:这仅仅是 Chromium 6 的一个怪癖,还是隐藏着一种更快的方法?幸运的是,随着 ES6 的出现,我们得到了一个解决方案,它毫不费力地优于之前提出的两种方法。
Array.from(): 终极解决方案
The ES6 中引入的 Array.from() 函数提供了一种将 NodeList 转换为 Array 的简洁而快速的方法。它的语法很简单:
// nl is a NodeList let myArray = Array.from(nl)
这一行代码以无与伦比的效率完成了转换,大大超越了它的前辈。因此,对最快转换方法的追求最终以 Array.from() 的胜利告终,为开发人员提供了完成这项基本任务的无与伦比的解决方案。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3