Rumah  >  Artikel  >  hujung hadapan web  >  NodeList to Array: Adakah `Array.from()` Benar-benar Terpantas?

NodeList to Array: Adakah `Array.from()` Benar-benar Terpantas?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 03:49:03258semak imbas

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

Menukar daripada NodeList kepada Array: Mendedahkan Pendekatan Paling Pantas

Perbincangan sebelum ini telah mencadangkan agar menggunakan Array.prototype.slice.call(nl) kaedah menawarkan penukaran yang paling cekap daripada NodeList kepada Array. Walau bagaimanapun, penanda aras baru-baru ini telah mendedahkan realiti berbeza yang menakjubkan. Bertentangan dengan kepercayaan popular, pendekatan untuk gelung tradisional, untuk(var i = 0, n; n = nl[i]; i) arr.push(n);, mengatasi kaedah yang disebutkan di atas dengan margin tiga kali ganda yang luar biasa.

Penemuan yang membingungkan ini mencetuskan rasa ingin tahu: Adakah ini satu keanehan Chromium 6 semata-mata, atau adakah pendekatan yang lebih pantas tersembunyi? Nasib baik, dengan kemunculan ES6, kami dipersembahkan dengan penyelesaian yang mudah mengatasi kedua-dua kaedah yang dicadangkan sebelum ini.

Array.from(): The Ultimate Solution

The Fungsi Array.from(), yang diperkenalkan dalam ES6, menyediakan cara yang ringkas dan sangat pantas untuk menukar NodeList kepada Array. Sintaksnya adalah mudah:

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

Barisan tunggal kod ini mencapai penukaran dengan kecekapan yang tiada tandingan, mengatasi pendahulunya dengan margin yang ketara. Oleh itu, usaha untuk kaedah penukaran terpantas memuncak dalam pemerintahan Array.from(), yang menawarkan pembangun penyelesaian yang tiada tandingan untuk tugas penting ini.

Atas ialah kandungan terperinci NodeList to Array: Adakah `Array.from()` Benar-benar Terpantas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn