node.js - 为什么数组只注册最后一个对象多次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, roadSpeed_2: 0, roadSpeed_3: 0, Acceleration: 4 },
{ roadSpeed_1: 100, roadSpeed_2: 0, roadSpeed_3: 0, Acceleration: 4 },
{ roadSpeed_1: 100, roadSpeed_2: 0, roadSpeed_3: 0, Acceleration: 4 },
{ roadSpeed_1: 100, roadSpeed_2: 0, roadSpeed_3: 0, Acceleration: 4 },
{ roadSpeed_1: 100, roadSpeed_2: 0, roadSpeed_3: 0, Acceleration: 4 },
{ roadSpeed_1: 100, roadSpeed_2: 0, roadSpeed_3: 0, Acceleration: 4 },
{ roadSpeed_1: 100, roadSpeed_2: 0, roadSpeed_3: 0, Acceleration: 4 },
{ roadSpeed_1: 100, roadSpeed_2: 0, roadSpeed_3: 0, Acceleration: 4 }
]
解决方案
JavaScript 中的对象是通过引用传递的。当多个变量设置为存储对象、数组或函数时,这些变量将指向内存中相同的分配空间。参考通过。来源:链接
我猜更好的解决方案:
array.push({roadspeed_1: operation 1, roadspeed_2: operation 2 ,roadspeed_3: operation 3 });
推荐阅读
- git - Azure DevOps 中的分支策略
- python - 如何破译谷歌航班结果的 URL?
- java - Spring Security 返回 403 而不是 401 并创建无效的 Redis 会话 cookie
- xml - Postgres JSONb 包括数组到 XML 与键和值和值
- javascript - Firebase 的实时数据库的“child_removed”事件未触发
- html - 通过jmeter将jtl到csv文件转换错误
- c# - 通过电子邮件检查用户是否存在于两个 AWS Cognito 用户池中
- html - Vertical Navbar- can somebody explain why the first one is working and the second not?
- google-coral - 如何将文件从我的 Coral 开发板传输到 SD 卡/PC 以进行培训?
- javascript - 做出反应。表单验证