Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengklon Tatasusunan Objek dalam JavaScript?

Bagaimana untuk Mengklon Tatasusunan Objek dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-21 19:13:17346semak imbas

How to Deep Clone Arrays of Objects in JavaScript?

Pengklonan Tatasusunan Objek dalam JavaScript: Penerokaan Mendalam

Cabaran

Mencipta salinan dalam tatasusunan objek yang mengandungi rujukan kepada objek lain dalam tatasusunan boleh menjadi tugas yang kompleks dalam JavaScript. Hanya mengklon tatasusunan hanya menyalin rujukan, yang membawa kepada perubahan dalam satu tatasusunan yang mempengaruhi tatasusunan yang lain.

structuredClone: ​​A Modern Solution

Kaedah terbaharu dan pilihan untuk deep pengklonan tatasusunan dalam JavaScript adalah dengan menggunakan structuredClone:

array2 = structuredClone(array1);

Fungsi ini tersedia dalam pelayar moden (Chrome 98, Firefox 94) tetapi memerlukan polyfill untuk keserasian yang lebih luas.

Pengklonan Dalam berasaskan JSON

Untuk sokongan penyemak imbas yang luas, teknik berasaskan JSON boleh digunakan .

Menggunakan JSON.parse dan JSON.stringify

Jika objek anda boleh bersiri JSON, anda boleh menggunakan JSON.parse dan JSON.stringify untuk pengklonan dalam. Walau bagaimanapun, kaedah ini mempunyai kelebihan dan kekurangan:

Kelebihan

  • Mengklon kedua-dua tatasusunan dan kandungannya.
  • Satu baris ringkas penyelesaian.

Kelemahan

  • Hanya berfungsi pada objek boleh siri JSON.
  • Prestasi lebih perlahan daripada menggunakan operator spread.
let clonedArray = JSON.parse(JSON.stringify(nodesArray));

Menggunakan Spread Operator dengan .map

Untuk pengklonan cetek dalam penyemak imbas moden, operator spread yang digabungkan dengan .map boleh menjadi lebih berprestasi:

clonedArray = nodesArray.map(a => {return {...a}});

Kelebihan

  • Lebih pantas daripada pengklonan berasaskan JSON.
  • Berfungsi pada semua jenis objek.

Kelemahan

  • Hanya melakukan klon cetek (mengklonkan tahap pertama objek).

Tanda Aras: Kaedah sebaran berprestasi jauh lebih pantas daripada berasaskan JSON pengklonan untuk tatasusunan 20 objek dengan kedalaman bersarang 2.

Atas ialah kandungan terperinci Bagaimana untuk Mengklon Tatasusunan Objek dalam JavaScript?. 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