기반을 다지자 ES6

구조 분해 할당. Destructuring

Jungsoomin :) 2020. 10. 1. 21:18

객체나 배열의 으로 변수를 할당하거나 필요한 값을 추출하고 싶을때 사용.

 

  •  : 으로 키 값을 변수에 할당하고 있다.
  • 나머지 값에 대한 변수를 지정하면 나머지값을 가진 배열이나 객체를 할당한다.
  • 존재하지 않는 인덱스나 키에 대한 값을 할당할 수 있다.
const song = {"author":'비', "date":'2020-05-31',"title":'깡',"body":'화려한 조명이 나를 감싸네에'};

const {author, date , title ,body} = song;

console.log(author, date, title, body);

// 다른 변수에 할당

const {author:author1, date:date1 , title:title1 ,body:body1} = song;

console.log(author1, date1, title1, body1);
//배열 할당

const arr = [1,2,3,4,5];

const [one, two, three, four, five, six=6, ...others] = arr;

console.log(one,two, three, four, five, six, others);

사용 방법의 핵심Json 데이터 추출이나 거대한 객체의 값 추출이다.

  • 할당 과정에서 할당된 객체에 진입하려면 : {키} 을 사용하여 진입한다.
  • 할당된 객체에 진입 후 키와 다른 이름으로 변수를 할당하라면 : {키:이름} 으로 접근한다.

가만보면 : (콜론) 으로 접근하는 것으로 보인다. 복잡한 객체 구조 : 으로 계속 진입할 수 있다.

 

콜론으로 원하는 객체까지 진입 > { 키 : 이름 } 으로 할당.

//디스트럭쳐링의 핵심 사용은 json 데이터 추출에 있다.
var kakaoResponse = {
 "tid": "T1234567890123456789",
 "cid": "TC0ONETIME",
 "status": "SUCCESS_PAYMENT",
 "partner_order_id": "partner_order_id",
 "partner_user_id": "partner_user_id",
 "payment_method_type": "MONEY",
 "item_name": "초코파이",
 "quantity": 1,
 "amount": {
  "total": 2200,
  "tax_free": 0,
  "vat": 200,
  "point": 0,
  "discount": 0
 },
 "canceled_amount": {
  "total": 0,
  "tax_free": 0,
  "vat": 0,
  "point": 0,
  "discount": 0
 },
 "cancel_available_amount": {
  "total": 2200,
  "tax_free": 0,
  "vat": 200,
  "point": 0,
  "discount": 0
 },
 "created_at": "2016-11-15T21:18:22",
 "approved_at": "2016-11-15T21:20:48",
 "payment_action_details": [
   {
    "aid": "A5678901234567890123",
    "payment_action_type": "PAYMENT",
    "payment_method_type": "MONEY",
    "amount": 2200,
    "point_amount": 0,
    "discount_amount": 0,
    "approved_at": "2016-11-15T21:20:48"
   }
  ]
}
// 추출하려고 하는것은 구매품목(item_name) 가격(amount.total), 구매날짜(approved_at)
const {item_name:itemName, amount:{total:totalPrice}, approved_at:approvedAt} = kakaoResponse;

console.log(itemName, totalPrice, approvedAt);

'기반을 다지자 ES6' 카테고리의 다른 글

Class  (0) 2020.10.01
전개연산자 Spread  (0) 2020.10.01
JS 코드 스타일  (0) 2020.10.01
배열의 정체와 길이  (0) 2020.10.01
화살표 함수  (0) 2020.10.01