【问题标题】:Array OverWrite itself by pushing Objects (JavaScript)通过推送对象(JavaScript)来覆盖数组本身
【发布时间】:2020-10-18 21:50:00
【问题描述】:

所以我的问题来了:在我看来,这是一个很容易解决的问题,但我不知道为什么会这样;正如我的标题所说,我的数组正在覆盖自身,输出一个 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

【问题讨论】:

    标签: javascript arrays sorting object


    【解决方案1】:

    相关:Push is overwriting previous data in array

    循环的每次迭代,您所做的是更改单个对象 aObj 的属性并将其推送到 arrS

    相反,您应该通过将var aObj={} 拉入循环中来为每次迭代创建一个新对象。

    【讨论】:

    • 感谢您的回答,它真的很有帮助,不知道通过引用传递的对象!
    • 乐于助人! :)
    猜你喜欢
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 2017-06-24
    • 2015-11-12
    • 2020-03-24
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多