Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memanjangkan Tatasusunan JavaScript dengan Tatasusunan Lain dengan Cekap?

Bagaimanakah Saya Boleh Memanjangkan Tatasusunan JavaScript dengan Tatasusunan Lain dengan Cekap?

Susan Sarandon
Susan Sarandonasal
2024-11-19 05:48:02277semak imbas

How Can I Efficiently Extend a JavaScript Array with Another Array?

Memanjangkan Tatasusunan JavaScript dengan Tatasusunan Lain

Melanjutkan tatasusunan JavaScript sedia ada dengan tatasusunan lain bukanlah operasi langsung. Walau bagaimanapun, terdapat cara yang cekap untuk mencapai ini tanpa membuat tatasusunan baharu.

Kaedah Tolak dengan Operator Hamparan (ES6)

Kaedah .push boleh menerima berbilang argumen. Menggunakan operator spread, kita boleh menghantar semua elemen tatasusunan kedua sebagai argumen kepada .push, dengan itu memanjangkan tatasusunan pertama:

a.push(...b)

Untuk penyemak imbas yang tidak menyokong ES6, kami boleh menggunakan .apply sebaliknya :

a.push.apply(a, b)

Sebagai alternatif, untuk kejelasan:

Array.prototype.push.apply(a,b)

Teknik Berasaskan Gelung

Pendekatan berasaskan gelung disyorkan jika tatasusunan kedua (b) adalah besar, kerana kaedah sebelumnya boleh menyebabkan ralat limpahan tindanan. Kod berikut melaksanakan operasi sambungan:

for (var i = 0; i < b.length; i++) {
  a.push(b[i]);
}

Pertimbangan Lanjut

Perhatikan bahawa kedua-dua pendekatan akan berfungsi dengan cekap apabila a adalah lebih besar daripada b. Walau bagaimanapun, jika b mengandungi sejumlah besar elemen, teknik berasaskan gelung harus digunakan untuk mengelakkan ralat limpahan tindanan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanjangkan Tatasusunan JavaScript dengan Tatasusunan Lain dengan Cekap?. 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