为什么数组只注册最后一个对象多次 Nodejs

问题描述

我试图用 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