Javascript 数组中以前存储的所有对象都将替换为数组末尾新插入的对象。为什么?

Javascript 数组中以前存储的所有对象都将替换为数组末尾新插入的对象。为什么?,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我一直在从一个对象数组中逐个插入数组中的对象。但每当我插入一个新对象时,以前的对象都会自动替换。我正在执行以下代码块: let slotsArray = []; let slotsObj = {}; try { let slotsData = await Slots.find({ author: req.user._id }); for (let j = 0; j < slotsData.length; j++) { slotsObj.tea

我一直在从一个对象数组中逐个插入数组中的对象。但每当我插入一个新对象时,以前的对象都会自动替换。我正在执行以下代码块:

  let slotsArray = [];
  let slotsObj = {}; 

  try {

    let slotsData = await Slots.find({ author: req.user._id });

    for (let j = 0; j < slotsData.length; j++) {
      slotsObj.teacher = `${slotsData[j].teacherName}`;
      slotsObj.sections = [`${slotsData[j].session}-${slotsData[j].section}`];
      slotsObj.subject = `${slotsData[j].subjectName}`;
      slotsObj.numLectures = `${slotsData[j].contactHours}`;
      slotsObj.numLabs = null;
      slotsArray.push(slotsObj);
    }
让slotsArray=[];
设slotsObj={};
试一试{
让slotsData=wait Slots.find({author:req.user.\u id});
对于(设j=0;j
Move让slotsObj={};在for循环中,这样slotsObj将在每次迭代中成为一个新的引用。

只有一个
slotsObj
。你需要在循环的顶部有
slotsObj={};
,这样每次迭代都是一个新对象。哦,谢谢!它成功了。谢谢Romka!它成功了。