Adakah `slice()` Masih Cara Terpantas untuk Menukar NodeList kepada Array?

DDD
Lepaskan: 2024-10-27 22:55:30
asal
827 orang telah melayarinya

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

Menukar NodeList JavaScript kepada Array: Pertimbangan Kelajuan

Perbincangan sebelum ini mengenai topik menukar NodeLists kepada tatasusunan telah mendakwa bahawa menggunakan slice() kaedah adalah pendekatan yang paling berkesan. Walau bagaimanapun, penanda aras baru-baru ini telah mendedahkan penemuan yang mengejutkan.

Pemerhatian Penanda Aras

Dalam percubaan yang dijalankan pada Chromium 6, didapati bahawa mencipta tatasusunan daripada NodeList menggunakan for loop mengatasi kaedah slice() dengan lebih daripada tiga kali ganda. Keputusan ini bercanggah dengan dakwaan terdahulu mengenai keunggulan slice().

Penjelasan Kemungkinan

Punca percanggahan ini mungkin berpunca daripada pengoptimuman khusus penyemak imbas atau perbezaan dalam JavaScript pelaksanaan enjin. Ada kemungkinan enjin Chromium mengendalikan gelung for dengan lebih cekap dalam senario ini.

Penyelesaian Alternatif dengan ES6

Dengan kemunculan ES6, penyelesaian baharu dan ringkas tersedia: fungsi Array.from(). Fungsi ini boleh dengan cepat dan mudah mencipta tatasusunan daripada mana-mana objek boleh lelar, termasuk NodeLists.

// nl is a NodeList
let myArray = Array.from(nl)
Salin selepas log masuk

Kesimpulan

Walaupun pendekatan gelung for mungkin menawarkan kelajuan yang mengejutkan dalam beberapa pelayar, fungsi Array.from() menyediakan penyelesaian moden dan merentas platform untuk menukar NodeLists kepada tatasusunan.

Atas ialah kandungan terperinci Adakah `slice()` Masih Cara Terpantas untuk Menukar NodeList kepada Array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!