我有一个文件名列表,每个文件都是这样的:
https://www.dropbox.com/s/xxx/NF%208700%test%test%file.pdf?raw=1
这些文件会动态放入列表中,因此它们不会保持正确的顺序。我想一次排序整个列表,但只能在url的末尾(文件名)。
像这样:
/NF%208700%test%test%file.pdf?raw=1
我可以通过这样做来获得文件的结尾
let index = curr.lastIndexOf("/");
console.log(curr.slice(index));
但我的问题是,如何只按字符串的特定部分对整个列表进行排序?
答案 0 :(得分:2)
可能的解决方案
const data = ['https://www.dropbox.com/s/xxx/NF%2', 'https://www.dropbox.com/s/xxx/NF%1'];
const result = data.sort((nameA, nameB) => nameA.split('/').slice(-1)[0].localeCompare(nameB.split('/').slice(-1)[0]));
console.log(result);
答案 1 :(得分:0)
您正在寻找Array.prototype.sort()。
有些事情:
const sortedFiles = files.sort((a, b) => {
return a.slice(a.lastIndexOf('/')) > b.slice(b.lastIndexOf('/'))
})