所以我的问题来了:在我看来,这是一个非常简单的问题,但我不知道为什么会发生这种情况;正如我的标题所说,我的数组正在重写自身,并将7对象的数组作为输出
下面是代码,我放了一些console.log()让你明白我的意思:
let str = "100 23 20 99 92 123 88";
let arr = str.split(" ");
console.log(arr);
console.log("\n");
var aObj={};
let arrS=[];
console.log(arrS);
for (let i = 0; i<arr.length;i++){
let sum=0;
for (let j=0; j<arr[i].length;j++){
sum += parseInt(arr[i][j]);
}
aObj.value=sum;
aObj.strI=arr[i];
console.log(aObj);
console.log("\n");
arrS.push(aObj);
console.log(arrS);
console.log("\n");
}https://repl.it/@Arcall95/try#index.js

发布于 2020-10-19 06:53:02
相关链接:Push is overwriting previous data in array
在循环的每一次迭代中,您所做的是更改单个对象aObj的属性并将其推送到arrS。
相反,您应该通过在循环中拉取var aObj={}来为每个迭代创建一个新对象。
https://stackoverflow.com/questions/64418684
复制相似问题