Dalam tutorial ini, anda akan belajar mengenai tugasan pemusnahan JavaScript dengan bantuan contoh.
Pemusnahan JavaScript
Tugasan destructuring yang diperkenalkan dalam ES6 memudahkan untuk menetapkan nilai array dan sifat objek kepada pemboleh ubah yang berbeza. Contohnya,
Sebelum ES6:
// assigning object attributes to variables const person = ( name: 'Sara', age: 25, gender: 'female' ) let name = person.name; let age = person.age; let gender = person.gender; console.log(name); // Sara console.log(age); // 25 console.log(gender); // female
Dari ES6:
// assigning object attributes to variables const person = ( name: 'Sara', age: 25, gender: 'female' ) // destructuring assignment let ( name, age, gender ) = person; console.log(name); // Sara console.log(age); // 25 console.log(gender); // female
Catatan : Urutan nama tidak penting dalam pemusnahan objek.
Sebagai contoh, anda boleh menulis program di atas sebagai:
let ( age, gender, name ) = person; console.log(name); // Sara
Catatan : Semasa menghancurkan objek, anda harus menggunakan nama yang sama untuk pemboleh ubah sebagai kunci objek yang sesuai.
Sebagai contoh,
let (name1, age, gender) = person; console.log(name1); // undefined
Sekiranya anda ingin memberikan nama pemboleh ubah yang berbeza untuk kunci objek, anda boleh menggunakan:
const person = ( name: 'Sara', age: 25, gender: 'female' ) // destructuring assignment // using different variable names let ( name: name1, age: age1, gender:gender1 ) = person; console.log(name1); // Sara console.log(age1); // 25 console.log(gender1); // female
Penyusunan Array
Anda juga boleh melakukan pemusnahan array dengan cara yang serupa. Sebagai contoh,
const arrValue = ('one', 'two', 'three'); // destructuring assignment in arrays const (x, y, z) = arrValue; console.log(x); // one console.log(y); // two console.log(z); // three
Tetapkan Nilai Lalai
Anda boleh menetapkan nilai lalai untuk pemboleh ubah semasa menggunakan destructuring. Sebagai contoh,
let arrValue = (10); // assigning default value 5 and 7 let (x = 5, y = 7) = arrValue; console.log(x); // 10 console.log(y); // 7
Dalam program di atas, arrValue hanya mempunyai satu elemen. Oleh itu,
- pemboleh ubah x akan menjadi 10
- pemboleh ubah y mengambil nilai lalai 7
Dalam pemusnahan objek, anda boleh menyampaikan nilai lalai dengan cara yang serupa. Sebagai contoh,
const person = ( name: 'Jack', ) // assign default value 26 to age if undefined const ( name, age = 26) = person; console.log(name); // Jack console.log(age); // 26
Menukar Pemboleh ubah
Dalam contoh ini, dua pemboleh ubah ditukar menggunakan sintaks tugasan yang merosakkan.
// program to swap variables let x = 4; let y = 7; // swapping variables (x, y) = (y, x); console.log(x); // 7 console.log(y); // 4
Langkau Item
Anda boleh melangkau item yang tidak diingini dalam array tanpa memberikannya ke pemboleh ubah tempatan. Sebagai contoh,
const arrValue = ('one', 'two', 'three'); // destructuring assignment in arrays const (x, , z) = arrValue; console.log(x); // one console.log(z); // three
Dalam program di atas, elemen kedua dihilangkan dengan menggunakan pemisah koma ,
.
Tetapkan Elemen yang Tinggal pada Pembolehubah Tunggal
Anda boleh menetapkan elemen array yang tersisa kepada pemboleh ubah menggunakan sintaks spread …
. Sebagai contoh,
const arrValue = ('one', 'two', 'three', 'four'); // destructuring assignment in arrays // assigning remaining elements to y const (x,… y) = arrValue; console.log(x); // one console.log(y); // ("two", "three", "four")
Di sini, one
diberikan kepada pemboleh ubah x. Selebihnya elemen array ditugaskan kepada pemboleh ubah y.
Anda juga boleh menetapkan sisa sifat objek ke satu pemboleh ubah. Sebagai contoh,
const person = ( name: 'Sara', age: 25, gender: 'female' ) // destructuring assignment // assigning remaining properties to rest let ( name,… rest ) = person; console.log(name); // Sara console.log(rest); // (age: 25, gender: "female")
Catatan : Pemboleh ubah dengan sintaks spread tidak boleh mempunyai koma akhir ,
. Anda harus menggunakan elemen rehat ini (pemboleh ubah dengan sintaks spread) sebagai pemboleh ubah terakhir.
Sebagai contoh,
const arrValue = ('one', 'two', 'three', 'four'); // throws an error const (… x, y) = arrValue; console.log(x); // eror
Tugasan Pemusnahan Bersarang
Anda boleh melakukan pemusnahan bersarang untuk elemen array. Sebagai contoh,
// nested array elements const arrValue = ('one', ('two', 'three')); // nested destructuring assignment in arrays const (x, (y, z)) = arrValue; console.log(x); // one console.log(y); // two console.log(z); // three
Di sini, pemboleh ubah y dan z diberikan elemen bersarang two
dan three
.
Untuk melaksanakan tugas pemusnahan bersarang, anda harus memasukkan pemboleh ubah dalam struktur array (dengan melampirkan di dalam ()
).
Anda juga boleh melakukan pemusnahan bersarang untuk sifat objek. Sebagai contoh,
const person = ( name: 'Jack', age: 26, hobbies: ( read: true, playGame: true ) ) // nested destructuring const (name, hobbies: (read, playGame)) = person; console.log(name); // Jack console.log(read); // true console.log(playGame); // true
Untuk melaksanakan tugas pemusnahan bersarang untuk objek, anda harus memasukkan pemboleh ubah dalam struktur objek (dengan melampirkan di dalam ()
).
Catatan : Ciri penugasan menghancurkan diperkenalkan pada ES6 . Beberapa penyemak imbas mungkin tidak menyokong penggunaan tugas pemusnahan. Lawati sokongan Javascript Destructuring untuk mengetahui lebih lanjut.