javascript JS中的复杂排序条件 | 您所在的位置:网站首页 › js的sort排序方法 › javascript JS中的复杂排序条件 |
我有一个文件列表,我想主要按名称排序,但如果名称(减去哈希和扩展名)匹配,我想按扩展名排序。扩展名(和顺序)如下:一个一个一个一个一个、一个一个一个一个、一个一个一个二个、一个一个一个三个、一个一个一个四个和一个一个五个。我遇到的问题(尽管有一个可行的解决方案)是,这很快就会变得非常复杂。很难(IMO)理解这是怎么回事,所以我希望我只是在犯傻,有一个更简单、更可扩展的方法来做这类事情?我很可能能够简化下面的代码,只是让它工作起来(假设没有我没有错过的边缘情况),但我更想寻找框架/模式来做这种排序。发展成一堆嵌套的if条件(如果我可能会做更多的扩展)似乎不是很好。当前代码: files.sort((a, b) => { const assetName = ({ name }) => name.match(/([^.]*)/); if (assetName(a)?.[1] === assetName(b)?.[1]) { if (/\.css\.map$/.test(a.name) && /\.css$/.test(b.name)) return 1; if (/\.css(\.map)?$/.test(b.name)) return -1; if ( /(?所需输出顺序的示例数据: bundle.abcde.js bundle.abcde.js.map bundle.12345.esm.js bundle.12345.esm.js.map bundle.abc12.css bundle.abc12.css.map谢谢! |
CopyRight 2018-2019 实验室设备网 版权所有 |