I denne vejledning lærer du om JavaScript-destruktureringsopgave ved hjælp af eksempler.
JavaScript-destruktion
Destruktureringsopgaven introduceret i ES6 gør det let at tildele array-værdier og objektegenskaber til forskellige variabler. For eksempel
Før 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
Fra 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
Bemærk : Navnens rækkefølge betyder ikke noget ved objektdestrukturering.
For eksempel kan du skrive ovenstående program som:
let ( age, gender, name ) = person; console.log(name); // Sara
Bemærk : Ved destruktion af objekter skal du bruge samme navn til variablen som den tilsvarende objektnøgle.
For eksempel,
let (name1, age, gender) = person; console.log(name1); // undefined
Hvis du vil tildele forskellige variabelnavne til objektnøglen, kan du bruge:
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
Array Destructuring
Du kan også udføre array-destruktion på en lignende måde. For eksempel,
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
Tildel standardværdier
Du kan tildele standardværdier for variabler, mens du bruger destruktion. For eksempel,
let arrValue = (10); // assigning default value 5 and 7 let (x = 5, y = 7) = arrValue; console.log(x); // 10 console.log(y); // 7
I ovenstående program har arrValue kun et element. Derfor
- variablen x vil være 10
- y-variablen tager standardværdien 7
I objektdestrukturering kan du videregive standardværdier på en lignende måde. For eksempel,
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
Bytte variabler
I dette eksempel byttes to variabler ved hjælp af syntaks for destruktureringsopgave.
// program to swap variables let x = 4; let y = 7; // swapping variables (x, y) = (y, x); console.log(x); // 7 console.log(y); // 4
Spring over varer
Du kan springe over uønskede emner i en matrix uden at tildele dem til lokale variabler. For eksempel,
const arrValue = ('one', 'two', 'three'); // destructuring assignment in arrays const (x, , z) = arrValue; console.log(x); // one console.log(z); // three
I ovenstående program udelades det andet element ved hjælp af komma-separatoren ,
.
Tildel resterende elementer til en enkelt variabel
Du kan tildele de resterende elementer i en matrix til en variabel ved hjælp af spread-syntaksen …
. For eksempel,
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")
Her one
tildeles x variablen. Og resten af matrixelementerne tildeles y-variablen.
Du kan også tildele resten af objektegenskaberne til en enkelt variabel. For eksempel,
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")
Bemærk : Variablen med den spredte syntaks kan ikke have et efterfølgende komma ,
. Du skal bruge dette hvileelement (variabel med spredt syntaks) som den sidste variabel.
For eksempel,
const arrValue = ('one', 'two', 'three', 'four'); // throws an error const (… x, y) = arrValue; console.log(x); // eror
Nestet destruktureringsopgave
Du kan udføre indlejret destruktion af matrixelementer. For eksempel,
// 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
Her tildeles variablen y og z indlejrede elementer two
og three
.
For at udføre den indlejrede destruktureringsopgave skal du vedlægge variablerne i en matrixstruktur (ved at omslutte inde ()
).
Du kan også udføre indlejret destruktion af objektegenskaber. For eksempel,
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
For at udføre den indlejrede destruktureringsopgave for objekter skal du vedlægge variablerne i en objektstruktur (ved at omslutte inde ()
).
Bemærk : Funktionen til tildeling af destruktion blev introduceret i ES6 . Nogle browsere understøtter muligvis ikke brugen af destruktureringsopgaven. Besøg Javascript Destructuring support for at lære mere.