2013-04-15 156 views
6

我想使用新的File API對輸入文件進行排序。它返回的列表似乎是不可變的:排序FileList對象

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' 

如果我想一次讀入多個文件,但我希望它們按順序到達。 (A.csvB.csv之前處理等)。這是可以實現的嗎?

回答

11

[].slice.call(files)使它成爲一個真正的數組,然後你可以使用.sort就可以了。

+1

聖!謝謝。 –

+2

ES6中的新方法是[Array.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from)。截至撰寫之日,它只能通過Firefox 32或更高版本實現。 –

+2

使用ES6擴展算子是另一種選擇: let files = [... e.target.files] .sort(); – jul