"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > NodeList para Array: `Array.from()` é realmente o mais rápido?

NodeList para Array: `Array.from()` é realmente o mais rápido?

Publicado em 2024-11-08
Navegar:279

 NodeList to Array: Is `Array.from()` Really the Fastest?

Convertendo de NodeList para Array: revelando a abordagem mais rápida

Discussões anteriores sugeriram que a utilização de Array.prototype.slice.call(nl) oferece a conversão mais eficiente de NodeList para Array. No entanto, benchmarkings recentes revelaram uma realidade surpreendentemente diferente. Ao contrário da crença popular, a abordagem for-loop tradicional, for(var i = 0, n; n = nl[i]; i) arr.push(n);, supera o método mencionado acima por uma notável margem tripla.

Essa descoberta desconcertante desperta curiosidade: isso é uma mera peculiaridade do Chromium 6 ou uma abordagem ainda mais rápida está oculta? Felizmente, com o advento do ES6, somos apresentados a uma solução que supera facilmente os dois métodos propostos anteriormente.

Array.from(): a solução definitiva

A A função Array.from(), introduzida no ES6, fornece um meio sucinto e extremamente rápido de converter um NodeList em um Array. Sua sintaxe é direta:

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

Essa única linha de código realiza a conversão com eficiência incomparável, eclipsando seus antecessores por uma margem significativa. Assim, a busca pelo método de conversão mais rápido culmina no reinado triunfante de Array.from(), oferecendo aos desenvolvedores uma solução incomparável para esta tarefa essencial.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3