如何在JS中基于末尾ID子串对字符串数组进行排序
实现方案
你可以直接用JavaScript原生的sort()方法处理,核心逻辑是提前提取每个字符串末尾的ID转成数字后再比较大小,示例代码如下:
let arr = ["UserA | 3", "UserB | 0", "UserC | 2", "UserD | 1"] // 按ID升序排序 arr.sort((prev, next) => { const prevId = Number(prev.split(' | ')[1]) const nextId = Number(next.split(' | ')[1]) return prevId - nextId }) console.log(arr) // 输出:["UserB | 0", "UserD | 1", "UserC | 2", "UserA | 3"]
注意事项
- 如果实际场景中
|分隔符两侧的空格不固定,可以把split的参数替换为正则/\s*\|\s*/,自动适配多空格、无空格的场景 - 如果需要按ID降序排列,只需要把return的语句改成
nextId - prevId即可 - 若存在ID异常(非数字、无ID)的情况,可以自行补充判断逻辑给异常值设置默认排序优先级
内容的提问来源于stack exchange,提问作者Apollo24
相关产品推荐
相关产品推荐

