在javascript中创建动态命名变量



我正在尝试使用动态名称为其字段创建JSON对象。我们的想法是创建一个像这样的JSON(包含4个代理的示例):

{
"Agent_1":[549,871,967,701,42],
"Agent_2":[615,683,663,638,190],
"Agent_3":[578,343,646,42,599],
"Agent_4":[42,779,21,856,578]
}

我的问题是我不知道如何为字段创建这些名称。这是我的代码:

// Creates the structure for a JSON file
export const buildJSON = (_oldChain, agents, resources) => {
let object = {};
let names;
for(let i = 0; i < agents; i++){
let agentVector = [];
names = "Agent_" + i;
for(let j = 0; j < resources; j++){
agentVector[j] = parseInt(_oldChain[i][j]);
}
object.names = agentVector;
}
return JSON.stringify(object);
}

可以看到,对于每次迭代,我创建了一个变量"Agent_" + i。但是现在,当我创建对象时,我如何使用这些名称呢,这里:object.names = agentVector?

您可以通过使用括号表示法在对象上设置带有动态名称的属性:

const obj = {};
obj['foo'] = 'bar';
const something = 'baz';
obj[something] = 'qux';
console.log(obj);
// {
//    foo: "bar",
//    baz: "qux"
// }

那么在你的例子中,它将是:

object[names] = agentVector;

您可以通过将新创建的变量作为键来直接将值赋给对象,例如:

object[names] = agentVector;