Dalam JavaScript, objek boleh dibuat menggunakan pendakap kerinting {}. Ini dipanggil objek literal. Literal objek boleh mengandungi sifat dan kaedah.
Meratakan ialah proses mengurangkan objek kepada objek kedalaman tunggal. Dengan kata lain, semua sifat dan kaedah objek terkandung dalam objek kedalaman tunggal.
Terdapat pelbagai cara untuk meratakan objek.
Gunakan untuk...dalam gelung
Gelung untuk...dalam boleh digunakan untuk mengulangi sifat sesuatu objek. Untuk setiap harta kita boleh menambahnya pada objek baharu.
Di bawah ialah coretan kod yang menggunakan gelung for...in untuk meratakan objek.
<!doctype html> <html> <head> <title>Example - flatten an object</title> </head> <body> <div id="result1">Original Object: </div> <div id="result2">Flatten Object: </div> <script> var obj = { "a": 1, "b": 2, "c": { "d": 3, "e": 4 } }; var newObj = {}; for (var key in obj) { if (typeof obj[key] === "object") { for (var subKey in obj[key]) { newObj[subKey] = obj[key][subKey]; } } else { newObj[key] = obj[key]; } } document.getElementById("result1").innerHTML += JSON.stringify(obj) document.getElementById("result2").innerHTML += JSON.stringify(newObj) console.log(newObj); </script> </body> </html>
Dalam kod di atas, kami mengisytiharkan objek literal bernama obj. Kemudian kami mengisytiharkan objek kosong literal bernama newObj. Kami menggunakan gelung for...in untuk mengulangi sifat obj. Untuk setiap atribut, kami menyemak sama ada nilai atribut ialah objek. Jika nilai harta ialah objek, maka kita sekali lagi menggunakan gelung for...in untuk melelaran ke atas sifat anak bagi nilai harta itu.
Untuk setiap subsifat, kami menambahkannya pada objek newObj dengan nama subsifat sebagai kunci. Jika nilai harta bukan objek, maka kami menambah harta itu pada objek newObj menggunakan nama harta sebagai kunci. Akhirnya, kami log newObj ke konsol.
Meratakan objek mempunyai pelbagai faedah. Sebahagian daripada mereka adalah -
Apabila objek diratakan, semua sifat dan kaedah terkandung dalam objek. Ini menjadikan akses kepada sifat dan kaedah mudah.
Apabila objek diratakan, data terkandung dalam satu objek. Ini memudahkan untuk memanipulasi data.
Apabila objek diratakan, ia boleh disiri dengan mudah. Serialisasi ialah proses menukar objek ke dalam format yang boleh disimpan atau dihantar.
Meratakan objek mempunyai beberapa kelemahan. Sebahagian daripada mereka adalah -
Apabila objek diratakan, lebihan data mungkin berlaku. Lebihan data bermakna data yang sama disimpan di berbilang tempat.
Apabila objek diratakan, ia boleh menjadi sukar untuk dikekalkan. Ini kerana semua sifat dan kaedah terkandung dalam objek.
Ringkasnya, meratakan ialah proses mengurangkan objek kepada objek kedalaman tunggal. Terdapat beberapa cara untuk meratakan objek. Beberapa faedah meratakan objek ialah kemudahan mengakses sifat, kemudahan memanipulasi data dan kemudahan bersiri. Objek rata mempunyai kekurangan seperti redundansi data dan kesukaran dalam penyelenggaraan.
Atas ialah kandungan terperinci Bagaimana untuk meratakan objek JavaScript menjadi objek satu kedalaman?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!