Pengklonan Cetek dalam JavaScript: Membandingkan Prestasi Teknik Penduaan Tatasusunan
Apabila berurusan dengan tatasusunan dalam JavaScript, ia menjadi perlu untuk membuat salinan atau pendua. Dua kaedah yang biasa digunakan untuk tugasan ini ialah kaedah hirisan dan gelung tradisional. Tetapi yang manakah lebih pantas?
Pencabar: Slice vs. For Loop
Kaedah slice ialah sebahagian daripada objek Array standard dan mencipta salinan cetek tatasusunan, mengekalkan struktur dan elemen, tetapi bukan rujukan objek yang menyalin dalam.
Sebaliknya, gelung for menggunakan pendekatan mudah untuk lelaran melalui tatasusunan dan salin secara manual setiap elemen ke dalam tatasusunan baharu.
Tanda Aras dan Pengoptimuman
Menurut tanda aras yang meluas, kaedah hirisan terbukti sebagai pilihan yang lebih pantas dalam pelayar seperti Chrome dan Firefox. Ini disebabkan oleh pengoptimuman penyemak imbas yang telah dilaksanakan untuk kaedah terbina dalam seperti slice.
Walau bagaimanapun, bagi penyemak imbas lain yang tidak mempunyai pengoptimuman ini, kaedah gelung for mungkin lebih pantas. Ini kerana struktur gelung for yang boleh diramal lebih mudah untuk dioptimumkan oleh pengkompil penyemak imbas.
Pertimbangan Pelaksanaan
Berikut ialah contoh skrip untuk menguji kaedah ini dalam konsol penyemak imbas :
Sementara 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);
Slice
n = 1000*1000; start = + new Date(); a = Array(n); b = a.slice(); console.log(new Date() - start);
Kesimpulan
Pilihan kaedah mana yang hendak digunakan untuk pendua tatasusunan dalam JavaScript bergantung pada penyemak imbas yang disasarkan. Untuk penyemak imbas dengan pengoptimuman untuk kaedah hirisan, ini adalah pilihan yang lebih pantas. Dalam kes lain, gelung for mungkin memberikan prestasi yang lebih baik.
Atas ialah kandungan terperinci Slice vs. For Loop: Manakah yang Lebih Cepat untuk Tatasusunan Pengklonan Cetek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!