JavaScript

computed property

갈잃자 2024. 1. 25. 20:19

개요

반복문을 돌며, 회사이름마다 맵형식으로 데이터를 씌운 뒤, 배열에 넣어야 하는 상황이 생겼다.

 

그런데 object의 key값을 변수로 넣어지지 않아 이를 해결하고자 구글링 해서 얻은 지식.

 

computed property

- computed property는 ES6부터 사용되었으며, 객체를 선언하는 순간에 변수를 활용하여 동적인 프로퍼티 명을 할당할 수 있게 해준다.

 

- computed property 문법은 자바스크립트 객체의 key 속성명을 표현식(변수, 함수 등)을 통해 지정하는 문법이다!


예시

      selectableCompanies.forEach(company => {
        const companyName = company.companyName;
        const companyObject = { companyName: true }
        selectedCompanies.push(companyObject);
      })
      
      
      // 위 companyObject 는 변수를 할당하지 못하고 하드코딩 되어, { companyName: true } 가 된다!

 

이를 해결하기 위해 computed property 문법 적용

 

      selectableCompanies.forEach(company => {
        const companyName = company.companyName;
        const companyObject = { [companyName]: true }
        selectedCompanies.push(companyObject);
      })
      
      // computed property를 적용시켜, companyName에 전에 할당 된 company.companyName이
	  // 들어가게 된다!
      // ex) companyObject = { '삼성생명': true }