【发布时间】:2017-09-27 10:04:34
【问题描述】:
我有一个包含 1000 多个图像文件的文件列表对象。我希望对象按文件名排序,文件名是字母数字。换句话说,我想做一个自然排序。文件名是这样的:
d_1_ct.png
d_2_ct.png
d_3_ct.png
d_4_ct.png
通过执行[].slice.call(filelist_object) 或Array.from(filelist_object) 将文件列表对象转换为数组,然后调用sort() 会导致仅按字母排序。如何使文件列表对象按文件名自然排序?
只要我能够在数组元素上使用URL.createObjectURL() 显示图像文件,我就可以将其转换为数组。
自然排序的字母数字字符串不是我要寻找的,尽管我在文件列表对象中的文件名是字母数字字符串。 filelist 对象包含以下属性:
0: File
lastModified: 1493435514308
lastModifiedDate: Sat Apr 29 2017 08:41:54 GMT+0530 (India Standard Time)
name: "d_1_ct.png"
size: 5307
type: "image/png"
webkitRelativePath: "img/d_1_ct.png"
__proto__:File
我想对name 或webkitRelativePath 进行排序,同时保留文件列表对象的所有属性,因为我使用对象的索引号来显示图像。
【问题讨论】:
-
更新解释了为什么它不是自然排序的字母数字字符串的副本。
标签: javascript natural-sort filelist