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

Javascript 根据字符串的特定部分进行Alpha排序,javascript,sorting,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(

我有一个文件名列表,每个文件如下所示:

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));
但我的问题是,如何仅按字符串的特定部分对整个列表进行排序?

可能的解决方案

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);
可能的解决办法

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);
你在找我

大致如下:

const sortedFiles = files.sort((a, b) => {
  return a.slice(a.lastIndexOf('/')) > b.slice(b.lastIndexOf('/'))
})
你在找我

大致如下:

const sortedFiles = files.sort((a, b) => {
  return a.slice(a.lastIndexOf('/')) > b.slice(b.lastIndexOf('/'))
})

(localeCompare可能比user874774建议的比较运算符更好)“a'>b”false;'æ'>'b'true(localeCompare可能比用户874774建议的比较运算符更好)'a'>'b'false;'æ'>'b'True给我一个错误,
TypeError:a.split(…).slice(…)[0]。localCompare不是函数
localCompare。。。不是localCompare@23Kah,这些输入错误会导致ya:)给我一个错误,
TypeError:a.split(…).slice(…)[0]。localCompare不是一个函数
localeCompare。。。不是localCompare@23Kah,那些拼写错误会让你:)