Rumah > hujung hadapan web > tutorial js > Slice vs. For Loop dalam JavaScript: Kaedah Manakah yang Menawarkan Penduaan Tatasusunan Lebih Pantas?

Slice vs. For Loop dalam JavaScript: Kaedah Manakah yang Menawarkan Penduaan Tatasusunan Lebih Pantas?

Susan Sarandon
Lepaskan: 2024-12-11 13:10:13
asal
376 orang telah melayarinya

Slice vs. For Loop in JavaScript: Which Method Offers Faster Array Duplication?

Analisis Prestasi: Mendua Tatasusunan dalam JavaScript Menggunakan Slice vs. Untuk Gelung

Dalam JavaScript, terdapat pelbagai pendekatan untuk menduplikasi tatasusunan. Dua kaedah biasa termasuk kaedah hirisan dan gelung for. Artikel ini meneroka prestasi relatif mereka untuk menentukan yang mana lebih pantas.

Kaedah Slice:

Kaedah slice mencipta tatasusunan baharu dengan mengekstrak bahagian tertentu daripada tatasusunan asal. Kod berikut menunjukkan contoh:

var dup_array = original_array.slice();
Salin selepas log masuk

Untuk Gelung:

A untuk gelung berulang melalui setiap elemen tatasusunan asal dan secara manual mencipta salinan dalam yang baharu tatasusunan:

for(var i = 0, len = original_array.length; i < len; ++i)
   dup_array[i] = original_array[i];
Salin selepas log masuk

Keputusan:

Tanda aras telah mendedahkan bahawa kaedah slice biasanya lebih pantas untuk penyemak imbas berasaskan blink, seperti Chrome dan Edge, manakala gelung for lebih pantas dalam penyemak imbas lain, seperti Firefox dan Safari. Ini disebabkan oleh pengoptimuman dalaman untuk slice dan concat dalam penyemak imbas blink.

Khususnya, sintaks spread (cth., [...original_array]) dan Array.from() telah muncul sebagai kaedah terpantas untuk penduaan tatasusunan , mengatasi kedua-dua slice dan gelung for dalam kebanyakan senario.

Tanda Aras Skrip:

Skrip JavaScript berikut boleh dilaksanakan dalam konsol penyemak imbas untuk membandingkan prestasi kaedah gelung for dan slice:

Untuk Gelung:

n = 1000 * 1000;
start = +new Date();
a = Array(n);
b = Array(n);
i = a.length;
while (i--) b[i] = a[i];
console.log(new Date() - start);
Salin selepas log masuk

Slice:

n = 1000 * 1000;
start = +new Date();
a = Array(n);
b = a.slice();
console.log(new Date() - start);
Salin selepas log masuk

Dengan menjalankan skrip ini beberapa kali, anda boleh melihat prestasi relatif setiap kaedah di bawah penyemak imbas yang berbeza syarat.

Nota: Ingat bahawa kaedah ini hanya melakukan salinan cetek, bermakna objek dirujuk dalam tatasusunan asal akan dikongsi dengan tatasusunan pendua. Pertimbangkan teknik pengklonan mendalam untuk struktur data yang lebih kompleks.

Atas ialah kandungan terperinci Slice vs. For Loop dalam JavaScript: Kaedah Manakah yang Menawarkan Penduaan Tatasusunan Lebih Pantas?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan