2017-01-17 8 views
1

に属性名:動的オブジェクト私はこのような配列持ちNodeJS

rules[0] = "a"; 
rules[1] = "b"; 
rules[2] = "c"; 

と値value-avalue-bvalue-c(最後の文字は "ルール" から来ているを持つオブジェクトdata

I配列を提案するかもしれませんが、実際にはそれらを通常の属性にする必要があります。文字列「value-」と変数の値で構成される動的属性名を作成するにはどうすればよいですか?

for r in rules { 
    data.value-??? = "something"; 
} 
+2

データ[ "付加価値" + R] = "何か" を – forrert

答えて

3

これを試してみてください:

const data = rules.reduce((dict, key) => { 
    dict[`value-${key}`] = 'something'; 
    return dict; 
}, {}); 
1

あなたは

var rules = ["a", "b", "c"], 
 
    data = {}; 
 

 
for (let r of rules) { 
 
    data['value-' + r] = "something"; 
 
} 
 
console.log(data);

または単純Array#forEach

ES6

要素を使用しています for ... of文を、使用することができます

var rules = ["a", "b", "c"], 
 
    data = {}; 
 

 
rules.forEach(r => data['value-' + r] = "something"); 
 
console.log(data);

ES5

var rules = ["a", "b", "c"], 
 
    data = {}; 
 

 
rules.forEach(function (r) { 
 
    data['value-' + r] = "something" 
 
}); 
 
console.log(data);

1

これを試してみてください:

var data = {}; 
var rules = ['a', 'b', 'c', 'd']; 
rules.forEach(function(rule) { 
    data['value-'+rule] = "something"; 
}); 
console.log(data); 
関連する問題