微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么数组只注册最后一个对象多次 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。