2016-05-25 7 views
0

オブジェクトのキーとして変数名を割り当てる方法はありますか?例えば、私は、アレイ「統計」配列から単純なオブジェクトを作成しようとしています。私の配列では、変数が格納されています:

var name = "Sally" 
var age = 35 
var city = "New York" 

var stats = [name, age, city] 

に格納されているこれらの変数を持っていると私は、オブジェクトの値としてキーと変数値として変数名を使用するオブジェクトを作成したいです。

例:

var obj = {"name": "Sally", "age": 35, "city": "New York"} 

私は関数を作成し、配列をループするために実行することでこれをやっています。今、私は間違っていることがわかっているインデックスに割り当てられたキーを持っていますが、変数の名前にする方法はわかりません。

=> { '0': Sally', 
    '1': 35, 
    '2': 'New York' 
} 

任意の提案:

function objCreator (array) { 
    var obj = {}; 
    for (var i = 0; i < array.length; i++) { 
     var key = i; 
     var value = array[i]; 
     obj[key] = value; 
    } 
    return obj; 
} 

これは、関数が返す何ですか?

+0

変数の名前を配列に未知のキーの名前を格納する必要があります。 'var obj = {name、age、city}'(配列なしで、ES6簡潔な表記法)や 'var obj = {name:stats [0]、age:stats [1]、などのように明示的にする必要があります。 city:stats [2]} '(統計情報が常に同じ順序である場合) – Bergi

答えて

0

あなたがどこか

var keyNames = ["name", "age", "city"]; 
function objCreator (array) 
{ 
    var obj = {}; 
    for (var i = 0; i < array.length; i++) 
    { 
     obj[keyNames[i]] = array[i]; //observe change in this line here 
    } 
    return obj; 
} 
関連する問題