2015-06-24 17 views
5

Ich erhalte ein Javascript-Objekt req.files. Dieses Objekt kann mehrere Dateien enthalten. req.files ist ein objectund kein .Generiere JavaScript-Objektname durch Anfügen einer Zeichenfolge an das Objekt

So der, wenn der Benutzer fügt drei Dateien, wird das Objekt wie folgt aussehen:

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

wo file0, file1 etc ein anderes Objekt ist.

Benutzer kann bis zu 15 Dateien hinzufügen. Wie kann ich Schleifen über solche Objekte überprüfen & Informationen aus req.files.fileX lesen? Ich muss IE 11 & Chrom unterstützen.

+1

'req.files [ "file" + i]' – Satpal

Antwort

6

Sie können die Klammernotation verwenden, um über eine Zeichenfolge auf die Eigenschaften eines Objekts zuzugreifen. Versuchen Sie folgendes:

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

Example fiddle

+0

Das ist perfekt !!! – SharpCoder

+0

Froh zu helfen :) –

1

So wie dieses Ich gehe davon aus Ihrem erf Objekt sieht:

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

Wenn ja, können Sie die Datei wie folgt verweisen: req.files['file0']

So könnte Ihre Schleife so aussehen:

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

Aber Sie brauchen nicht einmal eine Schleife verwenden:

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