通过将string附加到对象来生成JavaScript对象名称

我得到一个JavaScript对象req.files 。 这个对象可以有多个文件。 req.files是一个object 而不是一个 array

所以如果用户添加三个文件,该对象将如下所示:

 req.files.file0 req.files.file1 req.files.file2 

其中file0, file1等是另一个对象。

用户最多可以添加15个文件。 我如何检查循环这些对象和从req.files.fileX读取信息? 我需要支持IE 11和铬。

可以使用括号表示法通过string访问对象的属性。 尝试这个:

 for (var i = 0; i < Object.keys(req.files).length; i++) { var file = req.files['file' + i]; if (file) { // use file here... } } 

示例小提琴

所以我假设你的req对象如下所示:

 var req = { files: { file0: {}, file1: {}, file2: {}, //... file14: {} } }; 

如果是这样,你可以像这样引用文件: req.files['file0']

所以你的循环可能看起来像这样:

 for (prop in req.files) { var file = req.files[prop]; } 

但是你甚至不需要使用循环:

 var getReqFile = function(x){ return req.files['file' + x] || null; } var file = getReqFile(5);