javascript - 将元素推入for循环内的数组中
问题描述
我想通过在每个循环上修改一个值,从单个元素动态生成 50 个元素的数组。
const eventRecords = { Records: [] }
for (let i = 0; i < 50; i++) {
const aRecord = Object.assign({}, eventS3Chunk.Records[0])
aRecord.s3.object.key = `F7kdfh2Dj3j2s8/uploads/10000_users_without_password-20190102T030405Z/${i}.csv`
eventRecords.Records.push(Object.assign({}, aRecord))
}
eventRecords.Records 以 50 个相同元素的副本结束s3.object.key = F7kdfh2Dj3j2s8/uploads/10000_users_without_password-20190102T030405Z/49.csv
。
解决方案
这是因为您正在创建 , 的浅表副本Records[0]
,请使用JSON.parse(JSON.stringify(eventS3Chunk.Records[0]));
:
const eventS3Chunk = {
Records: [{
s3: {
object: {
key: "a"
}
}
}]
};
const eventRecords = Array.from({
length: 50
}, (_, i) => {
const aRecord = JSON.parse(JSON.stringify(eventS3Chunk.Records[0]));
aRecord.s3.object.key = `F7kdfh2Dj3j2s8/uploads/10000_users_without_password-20190102T030405Z/${i}.csv`;
return aRecord;
});
console.log(eventRecords)
推荐阅读
- react-native - 使用反应原生组件绘制和显示复杂网络?
- mongodb - Mongeez 带弹簧靴
- c++ - 向量订阅超出范围错误 C++
- python - 上传文件时权限被拒绝(Django,Apache2)
- node.js - 如何使用 Express 处理长请求
- node.js - 为什么条带 webhook 会出现 400 错误?
- flutter - 一次突出显示两个单选按钮
- java - openapi springboot generator jackson no String-argument构造函数/工厂方法从字符串值反序列化
- python - 通过 sendgrid-python API 库将 django 对象上下文传递给 sendgrid 电子邮件
- node.js - 带有 @ 的 Webpack 包导入