Cara menggabungkan objek dalam javascript
mata teras
- Kaedah penggabungan objek yang biasa digunakan dalam JavaScript termasuk pengendali pengembangan (
- ) dan kaedah
...
. Pengendali berkembang lebih moden dan ringkas, manakalaObject.assign()
lebih serasi dan sesuai untuk persekitaran yang lebih tua.Object.assign()
memperluaskan pengendali dan - kedua -duanya melakukan salinan cetek apabila menggabungkan objek, yang bermaksud bahawa objek bersarang masih merujuk kepada objek asal. Mengubah objek bersarang dalam objek yang digabungkan boleh menjejaskan objek asal, mengakibatkan kesan sampingan yang tidak dijangka.
Object.assign()
Untuk penggabungan yang mendalam (dengan betul menggabungkan objek bersarang), perpustakaan seperti fungsi tersuai atau lodash boleh digunakan. Contoh fungsi tersuai - disediakan dalam artikel, yang mewujudkan salinan kedalaman objek sebelum menggabungkannya menggunakan teknik
deepMergeObjects
.JSON.parse(JSON.stringify())
) (digunakan untuk menggabungkan sifat pelbagai objek) dan kaedah ...
(digunakan untuk menyalin sifat satu objek ke yang lain) adalah alat penting untuk menyelesaikan tugas -tugas ini. Walau bagaimanapun, pemahaman kapan dan bagaimana menggunakannya adalah penting untuk memanipulasi objek dengan cekap. Dalam artikel ini, saya akan memperkenalkan beberapa aplikasi praktikal kaedah ini, kelebihan dan kekurangan mereka, dan konsep yang sangat menyalin dan kemudian menggabungkan objek bersarang. Object.assign()
katalog
- kaedah gabungan objek
-
-
- memperluaskan operator (
-
...
) -
-
- kaedah
-
Object.assign()
-
-
- kaedah mana yang hendak dipilih
- Gabungan Deep: Salinan Deep dan Gabungkan Objek
- fungsi gabungan kedalaman tersuai
1
Expand Operator (. Apabila terdapat atribut dengan kunci yang sama dalam objek sumber, pengendali memperluas menimpa nilai dalam objek sasaran dengan nilai angka objek sumber terkini. ...
2
...
{ ...object1, ...object2 }
adalah kaedah lain yang digunakan dalam JavaScript untuk menggabungkan objek. Sintaksinya adalah
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = { ...defaults, ...userSettings }; console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
Object.assign()
perangkap dan langkah berjaga -jaga Object.assign()
Object.assign(target, source1, source2, ...)
Object.assign()
Berikut adalah perangkap dan masalah yang mungkin dihadapi apabila menggabungkan objek menggunakan pengendali Expand dan kaedah
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = Object.assign({}, defaults, userSettings); console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
1
memperluaskan pengendali dan kedua -duanya melakukan salinan cetek apabila menggabungkan objek. Ini bermakna objek bersarang masih merujuk kepada objek asal. Mengubah objek bersarang dalam objek yang digabungkan boleh menjejaskan objek asal, yang mungkin membawa kepada kesan sampingan yang tidak dijangka. Object.assign()
2
Apabila menggabungkan objek dengan sifat kunci yang sama, pengendali mengembangkan dan
menimpa nilai dalam objek yang dihasilkan dengan nilai angka dari objek sumber terkini. Jika ditangani secara tidak wajar, tingkah laku ini boleh menyebabkan kehilangan data.
Object.assign()
3
kerana ia mempunyai sokongan yang lebih luas.
4
Object.assign()
memperluaskan pengendali dan
5
Jika anda perlu menggabungkan objek besar atau melakukan operasi gabungan dengan kerap, menggunakan Object.assign()
atau mengembangkan pengendali boleh menyebabkan masalah prestasi kerana objek baru dibuat semasa proses penggabungan.
6
Salin atribut dari prototaip objek sumber ke objek sasaran, yang mungkin membawa kepada tingkah laku yang tidak dijangka jika prototaip objek sumber mempunyai sifat yang bertentangan dengan sifat objek sasaran. Sebaliknya, pengendali pengembangan tidak menyalin sifat prototaip. Object.assign()
dalam JavaScript. Dalam kes -kes tertentu, anda mungkin perlu mengambil kaedah lain, seperti pengklonan yang mendalam atau fungsi penggabungan yang mendalam, untuk mengatasi batasan -batasan ini.
Object.assign()
Kaedah mana yang hendak dipilih?
Kedua -dua Object.assign()
lebih serasi dengan persekitaran JavaScript yang lebih lama. untuk menentukan kaedah mana yang hendak digunakan, pertimbangkan:
Object.assign()
Jika persekitaran anda menyokong pengendali pengembangan (seperti versi ECMAScript terkini), gunakannya kerana ia adalah sintaks. Object.assign()
.
- Jika anda perlu menyalin objek bersarang (objek leher objek bersarang dalaman), baca objek salinan yang mendalam.
-
Object.assign()
gabungan dalam: Salinan dalam dan gabungan objek - memperluaskan pengendali dan
Adalah penting untuk memahami dan mengelakkannya sebelum menggabungkan objek.
Contoh berikut menunjukkan cara mengedit objek bersarang objek salinan mempengaruhi objek asal:
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = { ...defaults, ...userSettings }; console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
kod ini menunjukkan bahawa sifat shallowCopyPlanet
objek asal planet
telah diubah (anda mungkin tidak mahu ini). info.moons
Ini adalah fungsi yang sangat menyalin pelbagai objek sebelum menggabungkan dan mengembalikan objek tunggal. Dalam Kod, fungsi
menerima bilangan objek input, mewujudkan salinan kedalaman mereka menggunakan teknik deepMergeObjects
, dan kemudian menggunakan operasi pengembangan dalam kaedah JSON.parse(JSON.stringify())
untuk memadankannya. Objek yang digabungkan akan mengandungi salinan kedalaman sifat dari objek input. reduce()
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = Object.assign({}, defaults, userSettings); console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
Kesimpulan
Terima kasih kerana membaca! Saya harap artikel ini membantu anda mendapatkan gambaran mengenai penggabungan objek dalam JavaScript, bukan hanya pengenalan yang mudah. Mampu menggabungkan objek harus menggabungkan dengan baik dengan kemahiran JavaScript anda dan melanjutkan keupayaan pengekodan anda. Jika anda mempunyai sebarang pertanyaan atau komen, sila sertai Forum Komuniti SitePoint.
Soalan Lazim untuk menggabungkan objek dalam JavaScript
Apakah konsep menggabungkan objek dalam JavaScript?Menggabungkan objek dalam JavaScript merujuk kepada proses menggabungkan dua atau lebih objek ke dalam satu objek. Ini biasanya untuk menggabungkan sifat dan kaedah pelbagai objek ke dalam satu objek, supaya data dapat diuruskan dan dimanipulasi dengan lebih mudah. Objek yang digabungkan akan mengandungi semua sifat dan kaedah objek asal. Sekiranya terdapat sifat pendua, nilai objek terakhir akan mengatasi nilai sebelumnya.
Bagaimana menggabungkan objek dalam JavaScript menggunakan pengendali pengembangan?
Pengendali pengembangan (
) dalam JavaScript adalah cara yang moden dan efisien untuk menggabungkan objek. Ia membolehkan pengembangan objek yang boleh dimakan seperti ekspresi array atau rentetan untuk digunakan di mana ia dijangka menjadi sifar atau lebih parameter atau elemen. Berikut adalah contoh cara menggunakannya: ...
const planet = { name: 'Earth', emoji: '?', info: { type: 'terrestrial', moons: 1 } }; // 使用展开运算符进行浅拷贝 const shallowCopyPlanet = { ...planet }; // 修改浅拷贝中的嵌套对象 shallowCopyPlanet.info.moons = 2; console.log('原始行星:', planet.info.moons); // 原始行星:2 console.log('行星的浅拷贝:', shallowCopyPlanet.info.moons); // 行星的浅拷贝:2
Apakah peranan kaedah dalam menggabungkan objek? Object.assign()
Kaedah
digunakan untuk menyalin semua nilai yang boleh dibaca satu atau lebih objek sumber ke objek sasaran. Ia akan mengembalikan objek sasaran. Ini adalah cara yang sangat berguna untuk menggabungkan objek kerana ia membolehkan anda menggabungkan pelbagai objek sumber ke dalam satu objek sasaran. Walau bagaimanapun, perlu diperhatikan bahawa jika harta yang sama didapati dalam pelbagai objek, nilai objek terakhir dengan harta itu akan mengatasi nilai sebelumnya. Object.assign()
Bolehkah saya menggabungkan objek bersarang di JavaScript?
Ya, anda boleh menggabungkan objek bersarang di JavaScript. Walau bagaimanapun, proses ini sedikit lebih rumit kerana anda perlu memastikan bahawa objek bersarang digabungkan dengan betul, bukan hanya sifat peringkat atas. Ini sering dipanggil gabungan dalam. Object.assign()
dan pengendali pengembangan tidak melakukan gabungan mendalam secara lalai. Untuk melakukan ini, anda perlu melaksanakan fungsi tersuai atau menggunakan perpustakaan seperti Lodash.
Apa yang berlaku apabila menggabungkan objek, mengulangi atribut?
Apabila menggabungkan objek dalam JavaScript, jika sifat pendua wujud, nilai objek terakhir akan mengatasi nilai sebelumnya. Ini kerana apabila menggabungkan objek, ia melintasi sifat objek sumber dan menyerahkannya ke objek sasaran. Jika atribut sudah wujud pada objek sasaran, nilainya akan digantikan dengan nilai baru.
Adakah mungkin untuk menggabungkan susunan dalam JavaScript seperti menggabungkan objek?
Ya, tatasusunan boleh digabungkan dalam JavaScript menggunakan kaedah yang sama sebagai objek. Memperluas pengendali adalah cara biasa untuk menggabungkan tatasusunan. Berikut adalah contoh:
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = { ...defaults, ...userSettings }; console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
Bagaimana menggabungkan objek tanpa mengubah objek asal?
Kaedah pengendali dan Object.assign()
membuat objek baru apabila digabungkan, meninggalkan objek asal tidak berubah. Ini adalah ciri utama kaedah ini kerana ia menggalakkan Invariance, konsep teras dalam pengaturcaraan berfungsi di mana data tidak pernah berubah.
Bolehkah saya menggabungkan objek dengan jenis data yang berbeza dalam JavaScript?
Ya, anda boleh menggabungkan objek dengan jenis data yang berbeza dalam JavaScript. Objek yang digabungkan akan mengandungi semua sifat dan kaedah objek asal tanpa mengira jenis datanya. Walau bagaimanapun, jika terdapat sifat pendua dengan jenis data yang berbeza, nilai objek terakhir akan menimpa nilai sebelumnya.
Apakah kesan prestasi menggabungkan objek JavaScript?
Menggabungkan objek JavaScript boleh memberi kesan prestasi, terutamanya apabila berurusan dengan objek besar. Kerumitan masa pengendali pengembangan dan kaedah Object.assign()
adalah O (n), di mana n ialah jumlah sifat dalam objek sumber. Oleh itu, apabila memutuskan untuk menggabungkan objek, adalah penting untuk mempertimbangkan saiz objek.
Perpustakaan apa yang boleh membantu menggabungkan objek dalam JavaScript?
Ya, terdapat beberapa perpustakaan yang dapat membantu menggabungkan objek dalam JavaScript. Lodash adalah perpustakaan popular yang menyediakan pelbagai fungsi utiliti untuk memanipulasi objek dan tatasusunan, termasuk fungsi gabungan untuk objek penggabungan yang mendalam. Perpustakaan lain adalah jQuery, yang menyediakan kaedah $.extend()
untuk menggabungkan objek.
Atas ialah kandungan terperinci Cara menggabungkan objek dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

Python lebih sesuai untuk sains data dan automasi, manakala JavaScript lebih sesuai untuk pembangunan front-end dan penuh. 1. Python berfungsi dengan baik dalam sains data dan pembelajaran mesin, menggunakan perpustakaan seperti numpy dan panda untuk pemprosesan data dan pemodelan. 2. Python adalah ringkas dan cekap dalam automasi dan skrip. 3. JavaScript sangat diperlukan dalam pembangunan front-end dan digunakan untuk membina laman web dinamik dan aplikasi satu halaman. 4. JavaScript memainkan peranan dalam pembangunan back-end melalui Node.js dan menyokong pembangunan stack penuh.
