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