【发布时间】:2018-10-17 16:43:33
【问题描述】:
我有一个对象,我想使用循环将不确定数量的其他对象推送到该对象。为了保持井井有条,我想根据循环运行的次数动态命名键。我有以下内容:
let formsJson = {};
let counter = 1;
//savedForms are where the objects that I want to push reside
savedForms.forEach( form => {
formsJson['form'+counter] = JSON.parse(form.firstDataBit_json);
//This is where I'm having trouble
counter = counter + 1;
});
我可以很好地推送数据的第一位,也可以动态命名密钥。但是我需要将另外 2 个对象推到同一个动态键上,这就是我遇到麻烦的地方。如果我尝试显而易见的做法:
formsJson['form'+counter].push(JSON.parse(form.secondDataBit_JSON));
我没有得到任何输出。有没有办法做到这一点?
【问题讨论】:
-
从我在这里看到的情况来看,您的键只是对象内表单数量的增量计数。我认为在这里使用数组比使用关联数组更好。你能告诉我们你为什么选择使用关联数组吗?
-
Object.assign(formsJson['form'+counter], newObj)假设新对象中的键不重叠.. 不太确定这里的实际最终目标是什么。其他答案建议改用数组,这只是另一种方法。 -
@CalvinEllis 我正在从 SQL(通过 express)中提取与用户 ID 匹配的所有数据行。用户可以在 SQL 表中保存不定数量的表单,每行(表单)由 3 列 JSON 数据组成。因此需要解析它们并将每个发送到一个动态密钥。希望这是有道理的:)
-
@rlemon 这很有趣,我会试一试
标签: javascript arrays loops dynamic foreach