gpt4 book ai didi

javascript - localeCompare 自然排序?

转载 作者:行者123 更新时间:2023-12-04 15:05:47 24 4
gpt4 key购买 nike

我正在开发一个漫画书阅读器,我有一些用户上传的文件(图像)(文件对象),我正在使用它们的文件名以正确的顺序对它们进行排序。
我尝试使用 localeCompare对它们进行自然排序,但没有运气......
页面应按以下方式排序:

page1
page2
page3
etc.
但是,使用我当前的代码,它们是这样排序的:
page1  <------
page10
page11
page12
page13
page14
page15
page16
page17
page18
page19
page2 <------
page20
etc.
这是我为了正确排序而使用的代码:
( split() 函数用于获取图像文件名)
comicImages.sort((a, b) => {
let aSplit = a.webkitRelativePath.split('/')
let bSplit = b.webkitRelativePath.split('/')
let compareResult = aSplit[2].localeCompare(bSplit[2], {numeric: true, sensitivity: 'base'})

return compareResult
})

最佳答案

localeCompare 需要 3 个参数。 options对象( {numeric: true, sensitivity: 'base'} )应该是 第三个 争论不是第二个。

//----------------------------------------v
input.sort((a,b) => a.localeCompare(b, undefined, {numeric: true, sensitivity: 'base'}))
现场示例:

const input = [    "page1",
"page10",
"page11",
"page12",
"page13",
"page14",
"other1",
"other10",
"other11",
"other12",
"other13",
"other14",
"other15",
"other16",
"other17",
"other18",
"other19",
"other2",
"other20",
"page15",
"page16",
"page17",
"page18",
"page19",
"page2",
"page20",
];

//----------------------------------------v
input.sort((a,b) => a.localeCompare(b, undefined, {numeric: true, sensitivity: 'base'}))

console.log(...input)

关于javascript - localeCompare 自然排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66136638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com