2016-03-19 2 views
3

1つのプロパティで新しいオブジェクトを作成し、そのプロパティの値を設定できるようにする簡単な構文を探しています。ここに例があります。私は1行で何かをやりたいと思っています。変数のキーと値を1行につけて新しいオブジェクトを作成する

let parent = 'jackets', 
let responses = [{'color':'red', 'size':'medium'}] 
let tmp = {} 
tmp[parent] = responses 
return tmp 

ログインする必要があります。

{ 
"jackets": [ 
    { 
    'color':'red', 
    'size':'medium' 
    } 
    ] 
} 

を私は私は、これはES-仕様で可能になる予定だったことを一度見て思ったけど、それはバベル-2015のプリセットでは動作しません。

+0

[テンプレートの文字列をオブジェクトのプロパティ名](http://stackoverflow.com/q/33194138/1529630) – Oriol

答えて

1

これが私の作品:

*注:私は、コンソールに慰めの結果を持っています。コンソールを開いて結果を確認します。

const responses = [{'color':'red', 'size':'medium'}] 
 
const jackets = "jackets" 
 
const A = {[jackets]: responses} 
 
console.log(A)
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/6.1.19/browser.min.js"></script>

0Aconstの%の20A%20%3D%20%7B%の5BL%5D%3A%20responses%7D%0Aconsole.log(A)%の0A

const jackets = {[parent]: responses} 
console.log(jackets) 

// gives 

{"jackets":[{"color":"red","size":"medium"}]} 

注目:他の人が私の前に入った。

1

計算されたプロパティ名を使用する必要があります。

const key = 'foo'; 
const value = 'bar'; 

const foobar = {[key]: value}; // {foo: 'bar'} 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names

(これはes2015バベルのプリセットで動作します)

+0

また、バベルのドキュメントもあります:https://babeljs.io/docs/learn- es2015 /#エンハンストオブジェクトリテラル – nemoinho