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!它成功了。