212 votes

Ne pouvez pas utiliser forEach avec Filelist

Je suis en train de faire une boucle par un Filelist:

console.log('field:', field.photo.files)
field.photo.files.forEach(file => {
   // looping code
})

Comme vous pouvez le voir field.photo.files a Filelist:

enter image description here

Comment bien faire une boucle par field.photo.files?

377voto

Amadan Points 41944

Un FileList n'est pas un Array, mais il ne sont conformes à son contrat (a length et des indices numériques), de sorte que l'on peut "emprunter" Array méthodes:

Array.prototype.forEach.call(field.photo.files, function(file) { ... });

Puisque vous êtes de toute évidence en utilisant ES6, vous pouvez également faire un bon Array, à l'aide de la nouvelle - Array.from méthode:

Array.from(field.photo.files).forEach(file => { ... });

51voto

Willian Ribeiro Points 140

Vous pouvez également faire une itération avec un simple:

var files = field.photo.files;

for (var i = 0; i < files.length; i++) {
    console.log(files[i]);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X