Computed Properties

let prop = 'Jack';
let obj = {
  [prop]:'hi',
  ['b' + 'ar']: 'foo'
}

let i = 0;
let a = {
  ['foo' + ++i]: i,
  ['foo' + ++i]: i,
  ['foo' + ++i]: i
};

console.log(a.foo1); // 1
console.log(a.foo2); // 2
console.log(a.foo3); // 3

object literal에서 key값으로 변수를 사용하려면 square bracket을 이용한 computed properties라는 방식을 사용해줘야 한다.

let arr = [];
let arr2 = [];
let obj = {"cat":"meow", "dog":"woof", "duck":"quack"}

for(let key in obj){
    arr.push({key:ojb[key]}); 
}
// arr = [ { key: 'meow' }, { key: 'woof' }, { key: 'quack' } ]

for(let key in obj){
  arr2.push({[key]:obj[key]});
}
// [ { cat: 'meow' }, { dog: 'woof' }, { duck: 'quack' } ]

출처 : https://javascript.info/object
출처2: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names

궁금증, 더 공부할 것들