프로그래밍/Web
Javascript ES6 Object & Array Destructuring
studylida
2024. 5. 7. 21:00
Destructuring assignment
The destructuring assignment syntax is a JavaScript expression that makes it possible to unpack values from arrays, or properties from objects, into distinct variables.
Example1
let a, b, rest;
[a, b] = [10, 20];
console.log(a);
// Expected output: 10
console.log(b);
// Expected output: 20
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(rest);
// Expected output: Array [30, 40, 50]
Example2(Syntax)
const [a, b] = array;
const [a, , b] = array;
const [a = aDefault, b] = array;
const [a, b, ...rest] = array;
const [a, , b, ...rest] = array;
const [a, b, ...{ pop, push }] = array;
const [a, b, ...[c, d]] = array;
const { a, b } = obj;
const { a: a1, b: b1 } = obj;
const { a: a1 = aDefault, b = bDefault } = obj;
const { a, b, ...rest } = obj;
const { a: a1, b: b1, ...rest } = obj;
const { [key]: a } = obj;
let a, b, a1, b1, c, d, rest, pop, push;
[a, b] = array;
[a, , b] = array;
[a = aDefault, b] = array;
[a, b, ...rest] = array;
[a, , b, ...rest] = array;
[a, b, ...{ pop, push }] = array;
[a, b, ...[c, d]] = array;
({ a, b } = obj); // parentheses are required
({ a: a1, b: b1 } = obj);
({ a: a1 = aDefault, b = bDefault } = obj);
({ a, b, ...rest } = obj);
({ a: a1, b: b1, ...rest } = obj);
Example3
// import animals, { useAnimals } from "./data";
// //Destructuring Arrays
// // console.log(animals);
// const [cat, dog] = animals;
// // console.log(cat);
// const [animal, makeSound] = useAnimals(cat);
// console.log(animal);
// makeSound();
// //Destructuring Objects
// // const { name, sound} = cat;
// // const { name: catName, sound: catSound } = cat;
// // const { name = "Fluffy", sound = "Purr" } = cat;
// // const {feedingRequirements: {food, water} } = cat;
// // console.log(food);
// CHALLENGE: uncomment the code below and see the car stats rendered
import React from "react";
import ReactDOM from "react-dom";
import cars from "./practice";
const [honda, tesla] = cars;
const {
speedStats: { topSpeed: hondaTopSpeed }
} = honda;
const {
speedStats: { topSpeed: teslaTopSpeed }
} = tesla;
const {
coloursByPopularity: [hondaTopColour]
} = honda;
const {
coloursByPopularity: [teslaTopColour]
} = tesla;
ReactDOM.render(
<table>
<tr>
<th>Brand</th>
<th>Top Speed</th>
<th>Top Colour</th>
</tr>
<tr>
<td>{tesla.model}</td>
<td>{teslaTopSpeed}</td>
<td>{teslaTopColour}</td>
</tr>
<tr>
<td>{honda.model}</td>
<td>{hondaTopSpeed}</td>
<td>{hondaTopColour}</td>
</tr>
</table>,
document.getElementById("root")
);