2009-05-19 4 views

答えて

86

よう

はい。

var key = "anything"; 
var json = { }; 
json[key] = "key attribute"; 

また、プログラムを書くときの値がわかっている場合は、2番目の方法を使用してください。

-2

まあ、ない...

これを行うには、「直接」方法があるが、これはそれを行う必要があります。

json[key] = json.key; 
json.key = undefined; 

その少しトリッキー、ちょっと、それは働きます! 、ES6で

var key = "anything"; 

var json = {}; 

json[key] = "key attribute"; 
8

これはトリックを行う必要があります。

const key = "anything"; 

const object = { 
    [key]: "key attribute" 
// ^^^^^ COMPUTED PROPERTY NAME 
}; 

大括弧はkeyです。実際には、変数だけでなく、角括弧内の任意の式を指定することができます。

+0

を使用して、各ページの読み込み時に各クッキーのキー値を取得することができます。しかし、彼はオブジェクトリテラルのコンテキストでこれをやりたいです。 –

86

computed property namesを使用します。

+8

これは新しい受け入れ回答でなければなりません – Phoenix

+2

はクロムのようにうまく機能します。最も簡単で最善の答え(y) –

-1

クローズはこれに最適です。

function keyValue(key){ 
    return function(value){ 
    var object = {}; 
    object[key] = value; 
    return object; 
    } 
} 

var key = keyValue(key); 
key(value); 
+0

閉鎖はここで使用されているメカニズムに過ぎません。概念はHOFです。 –

+0

HOF =高次関数。 – Rick

2

ソリューション:

var key = "anything"; 

var json = {}; 

json[key] = "key attribute"; 
+0

解決策を説明してください。 –

+1

@MartinZabel説明が必要ないようです。 –

-1

最近ダイナミックJSONのキー値を渡してクッキーを設定するために、どのように解決策を必要としていました。 https://github.com/js-cookie/js-cookie#jsonを使用すると、簡単に行うことができます。 ユーザの選択した各オプション値をクッキーに保存したいので、タブやブラウザがシャットダウンした場合に失われることはありません。

var json = { 
     option_values : {} 
    }; 
    $('option:selected').each(function(index, el) { 
     var option = $(this); 
     var optionText = option.text(); 
     var key = 'option_' + index; 
     json.option_values[key] = optionText; 
     Cookies.set('option_values', json, { expires: 7 }); 
    }); 

次に、あなたは

Cookies.getJSON('option_values'); 
関連する問題