Javascript 因为…奇怪的行为

Javascript 因为…奇怪的行为,javascript,node.js,express,Javascript,Node.js,Express,我一直在玩express中的动态路线分配游戏,并从中意外地发现了一些行为。。。循环的一部分 我的想法很简单: 创建简单数组 constroomsarray=[“代数”、“后端”、“前端”] 循环遍历该数组并为数组中的每个项创建路由,因此我尝试使用for。。。环的 router.get(`/room/${i}`, isUser, (req, res) => { res.render("index/room", { path: "index/room&q

我一直在玩express中的动态路线分配游戏,并从中意外地发现了一些行为。。。循环的一部分

我的想法很简单:

  • 创建简单数组

    constroomsarray=[“代数”、“后端”、“前端”]

  • 循环遍历该数组并为数组中的每个项创建路由,因此我尝试使用for。。。环的

     router.get(`/room/${i}`, isUser, (req, res) => {
       res.render("index/room", { path: "index/room", name: i });
     })
    } ```
    
  • 结果出乎意料(至少对我来说)。每个路由都按预期创建,但无论我测试哪个路由,分配给
    name
    I
    值始终是数组中最后一项的值


    切换到for-loop或forEach解决了这个问题,一切都按预期进行,但是我想知道,为什么使用for-loop或forEach会出现这种行为。。。语句?

    您可能已经显示了循环。根据描述,您可能有
    var

    for(变量x,共[1,2,3])
    
    setTimeout(()=>console.log(x),0)您可能已经显示了循环。根据描述,您可能有
    var

    for(变量x,共[1,2,3])
    
    setTimeout(()=>console.log(x),0)抱歉,我没有注意到我错误地复制了代码段。您的回答回答了所有问题。很抱歉,我没有注意到我错误地复制了代码片段。你的回答回答了一切。