Penukaran Optimum daripada NodeList JavaScript kepada Array: Perbandingan Prestasi
Perbincangan sebelum ini telah mencadangkan untuk menukar NodeList kepada tatasusunan menggunakan Array.prototype .slice.call(nl) ialah pendekatan yang paling cekap. Walau bagaimanapun, penanda aras prestasi baru-baru ini telah mencabar tanggapan ini.
Menanda Aras Dua Kaedah
Manakala kaedah Array.prototype.slice.call(nl) dianggap secara meluas sebagai pantas , percubaan dalam Chromium 6 telah menunjukkan bahawa ia jauh lebih perlahan daripada gelung mudah:
<code class="javascript">// Using a 'for' loop var arr = []; for(var i = 0, n; n = nl[i]; ++i) arr.push(n);</code>
Hasil ini mungkin mengejutkan, memandangkan kecekapan kaedah slice() yang dilihat.
Masukkan Array.from() ES6
Dengan kemunculan ES6, kami kini mempunyai penyelesaian yang diperkemas untuk tugas ini: fungsi Array.from(). Fungsi ini membolehkan kami mencipta tatasusunan daripada objek boleh lelar, yang termasuk NodeLists.
<code class="javascript">// Using Array.from() let myArray = Array.from(nl)</code>
Faedah Prestasi Array.from()
Array.from( ) mengatasi kedua-dua slice() dan gelung mudah dari segi kelajuan. Ini disebabkan oleh pelaksanaannya yang dioptimumkan, yang memanfaatkan pengendali penyebaran ES6 untuk mencipta tatasusunan dengan cekap.
Kesimpulan
Walaupun teknik lama untuk menukar NodeLists kepada tatasusunan mungkin masih mempunyai kegunaannya, pengenalan Array.from() telah menjadikannya sebagai pendekatan terpantas dan paling mudah. Dengan memanfaatkan ciri lanjutan ES6, pembangun kini boleh melakukan penukaran ini dengan mudah dan cekap.
Atas ialah kandungan terperinci Adakah Array.from() Benar-benar Cara Terpantas untuk Menukar NodeList kepada Array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!