Skip to main content

Contoh Destructuring Object dalam Javascript

destructuring object pada ES6 sintaks menggunakan objek literal { } di sisi kiri dari operasi assignment.

  1. const profile = {

  2.     firstName: "John",

  3.     lastName: "Doe",

  4.     age: 18

  5. }

  6.  

  7. const {firstName, lastName, age} = profile;

  8.  

  9. console.log(firstName, lastName, age);

  10.  

  11. /* output:

  12. John Doe 18

  13. */


Pada contoh di atas tanda kurung kurawal { } merepresentasikan objek yang akan didestruksikan. Di dalamnya terdapat firstNamelastName, dan age yang merupakan variabel di mana kita menyimpan nilai properti dari objek profile. Kita juga perlu perhatikan penamaan variabel-variabelnya. Pastikan penamaannya sama seperti yang dimiliki oleh properti objeknya. Melalui nama variabel inilah nilai-nilai properti objek akan dimasukkan secara otomatis. Sehingga variabel firstName akan berisikan nilai profile.firstNamelastName akan berisikan nilai profile.lastName, begitu juga dengan variabel age akan berisikan nilai profile.age
Dalam destructuring object, kita bisa menspesifikasikan salah satu nilai yang ingin kita desktruksikan. Sehingga kita tidak perlu membuat variabel sebanyak properti yang dimiliki objeknya. contohnya:

  1. const {lastName} = profile;



Destructuring Assignment

Pada contoh sebelumnya kita melakukan destructuring object pada deklarasi variabel, namun pada kasus tertentu mungkin kita perlu melakukannya pada variabel yang sudah dideklarasikan. Atau kita ingin mengubah nilainya dengan nilai properti di objek. 
Dalam kasus tersebut, kita bisa melakukannya dengan seperti ini:

  1. const profile = {

  2.     firstName: "John",

  3.     lastName: "Doe",

  4.     age: 18

  5. }

  6.  

  7. let firstName = "Dimas";

  8. let age = 20;

  9.  

  10. // menginisialisasi nilai baru melalui object destruction

  11. ({firstName, age} = profile);

  12.  

  13. console.log(firstName);

  14. console.log(age);

  15.  

  16. /* output:

  17. John

  18. 18

  19. */


Saat melakukan destructuring assignment kita perlu menuliskan destructuring object di dalam tanda kurung. Jika tidak dituliskan di dalamnya, tanda buka kurung kurawal akan membuat JavaScript mengira kita membuat block statement, dan block statement tentu tidak bisa berada pada sisi kiri assignment

  1. // tidak bisa karena JavaScript mengira kita membuat block statement

  2. // block statement tidak bisa berada pada sisi kiri assignment

  3. {firstName, age} = profile;


Nah inilah fungsinya tanda kurung. Ia akan memberitahu JavaScript bahwa tanda kurawal yang di dalamnya bukan sebuah block statement, melainkan sebuah expression. Sehingga assignment dapat dilakukan.

  1. ({firstName, age} = profile);



Default Values

Ketika kita mendestruksikan objek dan kita menetapkan variabel dengan nama yang bukan merupakan properti dari objek, maka nilai dari variabel tersebut menjadi undefined. Contohnya:

  1. const profile = {

  2.     firstName: "John",

  3.     lastName: "Doe",

  4.     age: 18

  5. }

  6.  

  7.  

  8. const {firstName, age, isMale} = profile;

  9.  

  10. console.log(firstName)

  11. console.log(age)

  12. console.log(isMale)

  13.  

  14. /* output:

  15. John

  16. 18

  17. undefined

  18. */


Alternatifnya, kita bisa secara opsional mendefinisikan nilai default pada properti tertentu jika tidak ditemukan. Untuk melakukanya tambahkan tanda assignment (=) setelah nama variabel dan tentukan nilai defaultnya seperti ini:

  1. const profile = {

  2.     firstName: "John",

  3.     lastName: "Doe",

  4.     age: 18

  5. }

  6.  

  7.  

  8. const {firstName, age, isMale = false} = profile;

  9.  

  10. console.log(firstName)

  11. console.log(age)

  12. console.log(isMale)

  13.  

  14. /* output:

  15. John

  16. 18

  17. false

  18. */


Ketika menambahkan default value, jika properti tidak ditemukan nilai default akan diterapkan pada variabel.

Assigning to Different Local Variable Names

Sampai saat ini kita tahu bahwa untuk mendekstruksikan objek pada variabel lokal kita perlu menyeragamkan penamaan lokal variabel dengan properti objeknya. Namun sebenarnya dalam mendestruksikan objek kita bisa menggunakan penamaan variabel lokal yang berbeda. ES6 menyediakan sintaks tambahan yang membuat kita dapat melakukan hal tersebut. Penulisannya mirip seperti ketika kita membuat properti beserta nilainya pada objek. 
Contohnya seperti ini:

  1. const profile = {

  2.     firstName: "John",

  3.     lastName: "Doe",

  4.     age: 18

  5. }

  6.  

  7. const {firstName: localFirstName, lastName: localLastName, age: localAge} = profile;

  8.  

  9. console.log(localFirstName);

  10. console.log(localLastName);

  11. console.log(localAge);

  12.  

  13.  

  14. /* output:

  15. John

  16. Doe

  17. 18

  18. */


Comments

Popular posts from this blog

Belajar Babel Loader Javascript ES6

Apa itu  babel  atau  babel.js ? Babel merupakan sebuah transpiler yang bertugas untuk mengubah sintaks JavaScript modern (ES6+) menjadi sintaks yang dapat didukung penuh oleh seluruh browser. JavaScript merupakan bahasa pemrograman yang berkembang sangat pesat. Komunitasnya besar, dan tiap tahun selalu terdapat versi yang baru.  Namun perkembangan yang pesat tadi ternyata membutuhkan waktu yang lama untuk diadaptasi oleh browser atau Node.js. Lalu jika kita ingin mencoba sintaks terbaru di JavaScript apakah kita perlu menunggu hingga seluruh browser berhasil mengadaptasi pembaharuan tersebut? Tentu tidak!  Dengan babel Anda dapat menuliskan sintaks JavaScript versi terbaru tanpa khawatir memikirkan dukungan pada browser. Karena babel akan mengubah sintaks yang kita tuliskan menjadi kode yang dapat diterima browser. Jika Anda penasaran bagaimana cara babel bekerja, babel menyediakan sebuah playground yang dapat kita manfaatkan untuk mengubah sintaks JavaScript m...

Contoh Menggunakan API Dan Fetch di dalam Web Sederhana

Apakah Anda sudah berhasil menerapkan Fetch dalam menampilkan data dari API TheSportDB? Jika belum, yuk kita lakukan bersama-sama! Pada dokumentasi API menyebutkan bahwa, untuk mendapatkan daftar klub olahraga kita dapat menggunakan target url:  https://www.thesportsdb.com/api/v1/json/1/searchteams.php?t=Arsenal Sebelum menuliskan langsung pada proyek dengan fetch, biasakan ketika hendak mengkonsumsi API biasakan untuk mencobanya menggunakan aplikasi Postman terlebih dahulu. Jika target url tersebut diakses melalui Postman dengan GET Request, maka akan menghasilkan response dengan struktur JSON yang tampak pada  tab Body . Pada response JSON yang dihasilkan menampung satu  key  dengan nama  teams  yang memiliki  value  berupa sebuah array. Di dalam array tersebut menampilkan banyak data terkait klub olahraga yang memiliki nama Arsenal. Kita dapat memanfaatkan key  strTeam  untuk mendapatkan nama klub,  strTeamBadge  untuk menda...

Contoh Ajax Menggunakan Fetch

Seperti yang sudah kita ketahui, fetch memanfaatkan promise dalam melakukan tugasnya, sehingga network request yang dibuat menggunakan fetch akan selalu berjalan  asynchronous . Penggunaan dasar dari  fetch  tampak seperti ini: Network request dilakukan pada saat fungsi  fetch()  tereksekusi. fetch ( "https://web-server-book-dicoding.appspot.com/list" ) Jika request berhasil diproses oleh server, fungsi  fetch()  akan mengembalikan  promise resolve  dan membawa  response  object di dalamnya. Namun nilai  response  yang dibawa  resolve  belum sebagai data JSON yang kita butuhkan, melainkan informasi mengenai  response  itu sendiri, seperti  status code ,  target url ,  headers , dsb. Maka dari itu, untuk mendapatkan data JSON yang dibutuhkan, kita perlu mengubah response object ke dalam bentuk JSON dengan memanggil method  .json() . fetch ( "https://web-server-book-dicoding.appspot.co...