Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For循环在Javascript中多次追加对象_Javascript_For Loop - Fatal编程技术网

For循环在Javascript中多次追加对象

For循环在Javascript中多次追加对象,javascript,for-loop,Javascript,For Loop,我有以下代码 常数时间标签=[ {name:1:00am,present:true,label:[1:00,2:00],value:1:00}, {name:凌晨2:00,present:true,label:[2:00,3:00],value:2:00}, {name:3:00am,present:true,label:[3:00,4:00],value:3:00}, ]; const targetedTimes=[[0:00,1:00],[1:00,2:00]] 让实际时间=[]; 控制台

我有以下代码

常数时间标签=[ {name:1:00am,present:true,label:[1:00,2:00],value:1:00}, {name:凌晨2:00,present:true,label:[2:00,3:00],value:2:00}, {name:3:00am,present:true,label:[3:00,4:00],value:3:00}, ]; const targetedTimes=[[0:00,1:00],[1:00,2:00]] 让实际时间=[]; 控制台。获取时间; console.logstart:实际时间为,实际时间; 对于var j=0;j=0{ currItem.present=真; }否则{ curroitem.present=假; } console.log当前项目为curroItem; actualTime.pushcurrItem; console.log实际时间为,实际时间;
} 发生的情况是,控制台正在打印对对象的引用,因为数组是javascript中的一种对象,所以当您在控制台中打印并读取它时,每个console.log语句都指向同一个最终数组,这就是为什么每次的值都是相同的


我尝试在节点上运行脚本,它在每次迭代中都正确地打印出数组,第一次迭代中只有一个项目,因此您的代码很好。

等等,for循环之前的console.log呢?它记录了什么?这里没有什么错;这一切都很有道理。@HyperNeutrino你能解释一下为什么当我在console.log中记录currItem时,它会显示1个项目,但当我将它推到列表中时,它会在第一次迭代中追加3个项目吗?@lost9123193你可以看到它在第一次迭代中并没有追加3个项目,这是最后一次迭代console.log可能正在折叠类似的项,我不知道。@HyperNeutrino-hmm我不确定这是否有意义,console.log在for循环中,所以它应该显示所有迭代。在它的第一个循环中,我得到了上面显示的问题。