NodeJS中的dynamic对象属性名称

我有一个这样的数组:

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

而一个对象data值为value-avalue-bvalue-c (最后一个字母来自“rules”)。

我知道你可能会build议一个数组,但我真的需要他们是正常的属性。 我如何创build这些由string“value-”和一个variables的值形成的dynamic属性名称?

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

尝试这个:

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

尝试这个:

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

您可以使用for ... of语句,它使用元素

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