Web/JavaScript

(JavaScript) Destructuring

haramang 2021. 10. 31. 21:30

'use strict';

 

// Data needed for a later exercise

const flights =

  '_Delayed_Departure;fao93766109;txl2133758440;11:25+_Arrival;bru0943384722;fao93766109;11:45+_Delayed_Arrival;hel7439299980;fao93766109;12:05+_Departure;fao93766109;lis2323639855;12:30';

 

// Data needed for first part of the section

const restaurant = {

  name: 'Classico Italiano',

  location: 'Via Angelo Tavanti 23, Firenze, Italy',

  categories: ['Italian', 'Pizzeria', 'Vegetarian', 'Organic'],

  starterMenu: ['Focaccia', 'Bruschetta', 'Garlic Bread', 'Caprese Salad'],

  mainMenu: ['Pizza', 'Pasta', 'Risotto'],

 

  order: function (starterIndex, mainIndex) {

    return [this.starterMenu[starterIndex], this.mainMenu[mainIndex]];

  },

 

  // Distructuring object arguments

  orderDelivery: function({starterIndex=1, mainIndex=0, time='20:00', address}) {

    console.log(`Order Received: ${this.starterMenu[starterIndex]} and ${this.mainMenu[mainIndex]}

    will be delivered to ${address} at ${time}`);

  },

  openingHours: {

    thu: {

      open: 12,

      close: 22,

    },

    fri: {

      open: 11,

      close: 23,

    },

    sat: {

      open: 0, // Open 24 hours

      close: 24,

    },

  },

};

 

restaurant.orderDelivery({

  time: '22:30',

  address: 'Ansan',

  mainIndex: 2,

  starterIndex: 2,

});



restaurant.orderDelivery({

  address: 'Ansan',

  starterIndex: 1,

});




const {name, openingHours, categories} = restaurant;

console.log(name, openingHours, categories);

 

// New Name

const {name: restaurantName, openingHours: hours, categories: tags} = restaurant;

console.log(restaurantName, hours, tags);

 

// Default values

const {menu = [], starterMenu: starters = []} = restaurant;

console.log(menu, starters);



// Mutating variables

let a = 111;

let b = 999;

const obj = {a: b, b: 7, c:14};

 

({a, b} = obj);

console.log(a, b);



// Nested objects

const {fri: {open, close}} = openingHours;

console.log(open, close);





const arr = [1, 2, 3];

const [x, y, z] = arr;

console.log(x, y, z);

 

let [main, , secondary] = restaurant.categories;

console.log(main, secondary);

 

[main, secondary] = [secondary, main];

console.log(main, secondary);

 

const [starter, mainCourse] = restaurant.order(2 ,0);

console.log(starter, mainCourse);

 

const nested = [2, 4, [5, 6]];

const [i, , [j,k]] = nested;

console.log(i, j, k);

'Web > JavaScript' 카테고리의 다른 글

(JavaScript) || and && short circuiting / Nullish  (0) 2021.11.02
(JavaScript) Rest Pattern  (0) 2021.11.01
(JavaScript) Primitives vs References types  (0) 2021.10.31
(JavaScript) Regular vs Arrow function  (0) 2021.10.31
(JavaScript) THIS Keyword  (0) 2021.10.31