gpt4 book ai didi

javascript - 对包含带空格的文本的数组进行排序

转载 作者:行者123 更新时间:2023-12-01 03:03:18 24 4
gpt4 key购买 nike

我正在尝试对包含字符串的数组进行排序。每个值通常具有以下结构:
[注册号][ ][账号][, ][账号名]

但在极少数情况下,一个值没有前 4 个 reg.numbers + 一个空格。

这是一个数组的例子:

var accounts = ["1111 12345678, Account1", 
"2222 12345678, Account2",
"11345678, Account3",
"12345678, Account4",
"3333 12345678, Account5"];

我可以使用accounts.sort() 对帐户进行排序,这几乎可以正常工作。但我想对值进行排序,并且没有 reg.no 的值出现在排序数组的最后(仍然按字母顺序排序)。

所以对accounts数组进行排序应该得到这个列表:
1111 12345678, Account1
2222 12345678, Account2
3333 12345678, Account5
11345678, Account3
12345678, Account4

对此有什么好的建议吗?

最佳答案

您可以检查前导数字并将这些数字排序到顶部。

const hasLeading = s => /^\S+\s\S+\s\S+$/.test(s);

var accounts = ["1111 12345678, Account1", "2222 12345678, Account2", "11345678, Account3", "12345678, Account4", "3333 12345678, Account5"];

accounts.sort((a, b) => hasLeading(b) - hasLeading(a) || a > b || -(a < b));

console.log(accounts);

关于javascript - 对包含带空格的文本的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59718613/

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