Javascript 使用';编号';作为Object.key并递增它们

Javascript 使用';编号';作为Object.key并递增它们,javascript,json,express,for-loop,ejs,Javascript,Json,Express,For Loop,Ejs,我需要在Express JS路由定义中通过循环增加Object.keys 以下代码有效,这是手动定义的: for (var i=0;i<Object.keys(setupApp.menuLink).length;i++) { app.get('/'+Object.values(setupApp.menuLink[i]), isLoggedIn, function(req, res) { res.render('main_layout.ejs'

我需要在Express JS路由定义中通过循环增加Object.keys

以下代码有效,这是手动定义的:

 for (var i=0;i<Object.keys(setupApp.menuLink).length;i++) {
    app.get('/'+Object.values(setupApp.menuLink[i]), 
      isLoggedIn, function(req, res) {    
        res.render('main_layout.ejs', {
          head : {
            '0': Object.values(setupApp.menu)[0],
            '1': Object.values(setupApp.menu)[1],
            '2': Object.values(setupApp.menu)[2],
            '3': Object.values(setupApp.menu)[3],
          }
        });
      console.log(res.locals.linkVisited);
    });
  }
结果:

head : {     
  "'"+i+"'": Object.values(setupApp.menu)[i],
}
D:\NODES\5.2.3\app\routes.js:66
            "'"+i+"'": Object.values(setupApp.menu)[i],
               ^

SyntaxError: Unexpected token +
因重复问题怀疑而作出的回应: 关于这一点,增量在Object.values部分。 而我的已经在使用它了(我忘了提到它)。我的困难在于增加Object.keys部分

或者问题应该是这样的: 如何在JSON格式字符串中转义Javascript变量


谢谢。

您可以向对象添加新的参数,如head[i]=object.values(setupApp.menu)[i]如果
i
0
开始并为每个条目递增,为什么要使用对象而不是数组?您的编辑并没有使这一点更清楚。链接副本是关于如何使用变量内容作为对象的键
head:{[i]:Object.values(setupApp.menu)[i]}
将与编写
{'0':Object.values(setupApp.menu)[0]}
时相同(对于
i
0
)。或者
obj.header[i]=Object.values(setupApp.menu)[i]
。您是如何尝试使用
[i]:Object.values(setupApp.menu)[i]
obj.header[i]=Object.values(setupApp.menu)[i]
,显示了一个完整的示例,包括循环和
res.render
D:\NODES\5.2.3\app\routes.js:66
            "'"+i+"'": Object.values(setupApp.menu)[i],
               ^

SyntaxError: Unexpected token +