const maxObj = [{"BTCH#BD":57887,"BTYPEBD":"OCO"},
{"BTCH#BD":57887,"BTYPEBD":"OCO"},
{"BTCH#BD":57890,"BTYPEBD":"OTH"}]
const req = "4976809";
const result = [];
const temp = { reqId: req, batch: null };
for (var x = 0; x < maxObj.length; x++) {
temp.batch = maxObj[x];
result.push(temp);
}
console.log(JSON.stringify(result));
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我试图遍历一个对象数组,并将每个对象分配给临时模板对象的属性,然后我将其推送到结果数组.我的预期输出是这样的:
[{"reqId":"4976809","batch":{"BTCH#BD":57887,"BTYPEBD":"OCO"}},
{"reqId":"4976809","batch":{"BTCH#BD":57887,"BTYPEBD":"OCO"}},
{"reqId":"4976809","batch":{"BTCH#BD":57890,"BTYPEBD":"OTH"}}]
Run Code Online (Sandbox Code Playgroud)
但我的实际输出是这样的:
[{"reqId":"4976809","batch":{"BTCH#BD":57890,"BTYPEBD":"OTH"}},
{"reqId":"4976809","batch":{"BTCH#BD":57890,"BTYPEBD":"OTH"}},
{"reqId":"4976809","batch":{"BTCH#BD":57890,"BTYPEBD":"OTH"}}]
Run Code Online (Sandbox Code Playgroud)
我如何解决这个问题,以便获得上面的预期输出?
您使用相同的对象进行推送.您在数组中获得相同的对象.
您可以使用具有所需属性的新对象来防止存储相同的对象引用.
const maxObj = [{"BTCH#BD":57887,"BTYPEBD":"OCO"},
{"BTCH#BD":57887,"BTYPEBD":"OCO"},
{"BTCH#BD":57890,"BTYPEBD":"OTH"}]
const req = "4976809";
const result = [];
for (var x = 0; x < maxObj.length; x++) {
result.push({ reqId: req, batch: maxObj[x] });
}
console.log(JSON.stringify(result));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |