2013-04-15 20 views
6

Ich versuche, Eingabedateien mithilfe der neuen Datei-API zu sortieren. Die Liste, die es zurückgibt scheint unveränderlich zu sein:Sortieren eines FileList-Objekts

var x = ""; 
var files = e.target.files; // FileList object 
// Loop through the FileList and render image files as thumbnails. 

files.sort(); 

> Uncaught TypeError: Object #<FileList> has no method 'sort' 

Wenn ich will, auf einmal in mehrere Dateien lesen, aber ich möchte, dass sie, um anzukommen. (A.csv wird vor B.csv usw. verarbeitet). Ist das erreichbar?

Antwort

11

[].slice.call(files), um es in ein echtes Array zu machen, dann können Sie .sort darauf verwenden.

+1

Saint! Vielen Dank. –

+2

Eine neue Methode in ES6 ist [Array.from] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from) speziell aus diesem Grund. Zum Zeitpunkt des Schreibens ist es nur von Firefox 32 und höher implementiert. –

+2

Die Verwendung des ES6-Spread-Operators ist eine weitere Option: Lassen Sie Dateien = [... e.target.files] .sort(); – jul

Verwandte Themen