Object - objects & properties

tapata·2022년 2월 24일
0

JavaScript

목록 보기
4/7

objects & properties


object에서 property 제거

  • delete objectName.propertyName
let obj = { name : "jason", age: 20 }
delete obj.name
obj // {age : 20}

조건적 프로퍼티

  • spread 와 && 연산을 활용
conditionlet obj = { ...( condition && { k:"value" }) }
true{ ...( true &&{ k:"value" }) } => { ...{ k:"value" } } => { k : "value" }
false{ ...( false &&{ k:"value" }) } => { ...false } => {}
  • Object.assign 메서드 이용 (ECMAScript2015)

//  'development' 인 경우에만 obj.error 프로퍼티 삽입
let obj = {
      "message":err.message,
      "status": err.status || 500,
      ...((req.app.get('env')==='development') && {"error": err})
    }  


// condition  true 일때 obj.k1 존재 , false 일때 obj.k2 존재
Object.assign(obj, condition ? { k1 : "val1" } : { k2 : "val2" })

// condition true 일때 obj.k3 존재
Object.assign(obj, condition && { k3 : "val3" })

Optional Chaninng

  • property에 접근할때 . 대신 ?. 를 사용
  • undefined 나 null 의 property에 접근하면 TypeError 발생
  • ?.로 undefined나 null의 property에 접근하면, TypeError 발생 없이 undefined 리턴
  • undefined 나 null 일 가능성이 있는 object의 property에 접근할때 사용
  • || 연산과 함께 사용하면 undefined 일때 기본값 설정 가능
let users = [
  { name : "jane", address : { city : "vancouver" }},
  { name : "john", address : { city : "austin" }},
  { name : "jason" } ]

let cities = new Set()

users.forEach(user=> { 
  	// user.address could be 'undefined'
	let city = user.address?.city
    if(!city) return
    cities.add(city)
    }) // cities = {'vancouver', 'austin' }

let user = users[2]

// 'homeless'
let residence = user.address?.city || 'homeless' 

Destructuring assignment

const kim = {
  weight: 82,
  height: 190,
  name: {
    lastName: "kardashain",
    middleName: "noel",
    firstName: "Kimberly",
  },
  sisters: ["Kourtney ", "Khloe", "Kendall", "Kylie"],
};

const {
  weight,
  name: { middleName },
  sisters: [, , , kylie],
} = kim;

console.log(weight); // 82
console.log(middleName); // 'noel'
console.log(kylie); // 'Kylie'
profile
hello

0개의 댓글