Alpha根据字符串的特定部分排序

时间:2017-07-25 20:02:39

标签: javascript sorting

我有一个文件名列表,每个文件都是这样的:

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));

但我的问题是,如何只按字符串的特定部分对整个列表进行排序?

2 个答案:

答案 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('/'))
})