问题描述
我试图用 n 个对象填充一个数组,但它只是注册了最后一个对象 n 次这是我的代码:
async function show(carId,debut,fin){
let score = {}
let array = [];
res = await scoreData(carId);
for(i = 0; i < res.entries.length ; i++){
date = res.entries[i].Timestamp._.toISOString().slice(0,10);
if (date >= debut && date <= fin){
score.roadSpeed_1 = (res.entries[i].speed_1._)/((res.entries[i].speed_1._)+ (res.entries[i].speed_2._) + (res.entries[i].speed_3._))*10000;
score.roadSpeed_2 = (res.entries[i].speed_2._)/((res.entries[i].speed_1._)+ (res.entries[i].speed_2._) + (res.entries[i].speed_3._))*10000;
score.roadSpeed_3 = (res.entries[i].speed_3._)/((res.entries[i].speed_1._)+ (res.entries[i].speed_2._) + (res.entries[i].speed_3._))*10000;
score.acceleration = Math.round(res.entries[i].millage._ / res.entries[i].Vehicle_speed._)
console.log(res.entries[i].millage._ / res.entries[i].Vehicle_speed._)
array.push(score);
}
}
console.log(array)
}
结果如下:
[
{ roadSpeed_1: 100,roadSpeed_2: 0,roadSpeed_3: 0,acceleration: 4 },{ roadSpeed_1: 100,acceleration: 4 }
]
解决方法
JavaScript 中的对象通过引用传递。当多个变量设置为存储对象、数组或函数时,这些变量将指向内存中相同的分配空间。通过引用传递。来源:Link
我想更好的解决方案:
With wordApp.ActiveDocument
.Sections(1).PageSetup.DifferentFirstPageHeaderFooter = True
.Sections(2).PageSetup.DifferentFirstPageHeaderFooter = False
With .Sections(1)
.Headers(wdHeaderFooterFirstPage).Range.Text = Cells(15,i)
.Footers(wdHeaderFooterFirstPage).Range.InsertBefore Cells(18,i)
End With
End With