小编典典

将HTMLCollection转换为数组的最有效方法

javascript

除了遍历所述集合的内容并将每个项目手动推入数组之外,是否有更有效的方法将HTMLCollection转换为数组?


阅读 1347

收藏
2020-04-25

共1个答案

小编典典

var arr = Array.prototype.slice.call( htmlCollection )

使用“本地”代码将具有相同的效果。

编辑

由于这有很多观点,请注意(按@oriol的评论),以下更简洁的表达 实际上 等效:

var arr = [].slice.call(htmlCollection);

但是,请注意@JussiR的注释,它与“冗长的”形式不同,它确实在该过程中创建了一个空的,未使用的,实际上是不可用的数组实例。编译器对此所做的工作超出了程序员的范围。

编辑

从ECMAScript 2015(ES 6)开始,还有Array.from :

var arr = Array.from(htmlCollection);

编辑

ECMAScript 2015还提供了散布运算符,其功能等效于Array.from(尽管请注意,它Array.from支持将映射功能作为第二个参数)。

var arr = [...htmlCollection];

我已经确认上述两项工作都在上进行NodeList

2020-04-25