将字符串附加到对象上以生成 JavaScript 对象名称

5
我得到了一个 Javascript 对象 req.files。该对象可以包含多个文件。 req.files 是一个 对象,而不是一个数组
因此,如果用户添加了三个文件,则该对象将如下所示:
req.files.file0
req.files.file1
req.files.file2

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

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


1
req.files["file" + i] - Satpal
2个回答

6
你可以使用方括号表示法通过字符串访问对象的属性。尝试这样做:
for (var i = 0; i < Object.keys(req.files).length; i++) {
    var file = req.files['file' + i];
    if (file) {
        // use file here...
    }
}

示例代码


(该链接包含示例代码)

1
所以我假设你的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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接