通过将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);