javascript 仅对数组中符合条件的字符串进行排序

bprjcwpo  于 2023-01-01  发布在  Java
关注(0)|答案(1)|浏览(157)

我需要你帮我解决这个问题:例如,我有一个数组,类似于:

[
'3040-200021'
'4502-Frac 01'
'4504-Frac 16-J-10370'
'4504-Frac 16-J-10224'
...
...
...
]

我只想对最后两个字符串具有相同sintax的字符串进行排序,然后得到如下结果:

[
'3040-200021'
'4502-Frac 01'
'4504-Frac 16-J-10224'
'4504-Frac 16-J-10370'
...
...
...
]

如果我使用myArray.sort(),它会对所有数组进行重新排序,我只想对包含3个破折号的字符串进行重新排序
如果我使用myArray.sort(),它会对所有数组进行重新排序,我只想对包含3个破折号的字符串进行重新排序

k3bvogb1

k3bvogb11#

如果任何字符串的格式不同,则返回0,否则进行比较

const array = [
  '3040-200021',
  '4502-Frac 01',
  '4504-Frac 16-J-10370',
  '4504-Frac 16-J-10224',
  'test 123'
]

const regex = /^\d{4}-Frac \d{2}-J-\d{5}$/

const sorted = [...array].sort((a, b) => {
  if (!a.match(regex) || !b.match(regex)) return 0
  return a.localeCompare(b)
})

console.log(sorted)

相关问题